diff --git a/HEADS b/HEADS index 8d8eb83..88797d1 100644 --- a/HEADS +++ b/HEADS @@ -1 +1 @@ -{"engine": {"3.2": "64a9e86c5c20bd4bd5833f0563457d0126617489", "3.x": "9b512dd510207d32911064a1bbe15b80c91b006b"}, "world_generator": {"master": "260c430f11b0b591eaf4714516419aa327d2842c"}, "entity_spell_system": {"master": "3536f01bacf5f54cefb32b768cd020a1f94d0ade"}, "ui_extensions": {"master": "80a3b96fc56991a0f88a1d441ed1e3cebaf3307a"}, "texture_packer": {"master": "ae4d222fbaade063ed6f0bc9f3aaa53df68a7fed"}, "fastnoise": {"master": "46bb1f610bfb7171613b5c708d312bcf94e89356"}, "thread_pool": {"master": "0917511d04bb1aa308385b63ec88d3c182990628"}, "mesh_data_resource": {"master": "a062d871d49d954c5466b9de54b4075cb61cbef4"}, "mesh_utils": {"master": "b52a261c31f04fad624e5cfbcdcc4a45d61136da"}, "props": {"master": "2afd6eff45f9a921bdf4090ff3029def86df5cb5"}, "terraman_2d": {"master": "60a7e84a5dc2fc252b0c582dd8f877685d28d74a"}, "broken_seals_module": {"master": "52c5a81350db1c29d375c63d95010260911ec034"}, "rtile_map": {"master": "389070cfef387b69902e23e6c4ac53997b69e42e"}, "props_2d": {"master": "a45822b63519d7f9fb391ab6b1dced468c6f399d"}, "pandemonium_engine": {"master": "67f3aba99455f4fce5100ec1a41c807a8db00581"}} \ No newline at end of file +{"engine": {"3.2": "64a9e86c5c20bd4bd5833f0563457d0126617489", "3.x": "9b512dd510207d32911064a1bbe15b80c91b006b"}, "world_generator": {"master": "260c430f11b0b591eaf4714516419aa327d2842c"}, "entity_spell_system": {"master": "3536f01bacf5f54cefb32b768cd020a1f94d0ade"}, "ui_extensions": {"master": "80a3b96fc56991a0f88a1d441ed1e3cebaf3307a"}, "texture_packer": {"master": "ae4d222fbaade063ed6f0bc9f3aaa53df68a7fed"}, "fastnoise": {"master": "46bb1f610bfb7171613b5c708d312bcf94e89356"}, "thread_pool": {"master": "0917511d04bb1aa308385b63ec88d3c182990628"}, "mesh_data_resource": {"master": "a062d871d49d954c5466b9de54b4075cb61cbef4"}, "mesh_utils": {"master": "b52a261c31f04fad624e5cfbcdcc4a45d61136da"}, "props": {"master": "2afd6eff45f9a921bdf4090ff3029def86df5cb5"}, "terraman_2d": {"master": "60a7e84a5dc2fc252b0c582dd8f877685d28d74a"}, "broken_seals_module": {"master": "52c5a81350db1c29d375c63d95010260911ec034"}, "rtile_map": {"master": "389070cfef387b69902e23e6c4ac53997b69e42e"}, "props_2d": {"master": "a45822b63519d7f9fb391ab6b1dced468c6f399d"}, "pandemonium_engine": {"master": "2539e01711c367dd85df4cbe325f99a75129d2f7"}} \ No newline at end of file diff --git a/game/addons/mat_maker_gd/LICENSE.md b/game/addons/mat_maker_gd/LICENSE.md new file mode 100644 index 0000000..ca6aeaf --- /dev/null +++ b/game/addons/mat_maker_gd/LICENSE.md @@ -0,0 +1,22 @@ +# MIT License + +Copyright (c) 2020 Péter Magyar +Copyright (c) 2018-2020 Rodolphe Suescun and contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/game/addons/mat_maker_gd/README.md b/game/addons/mat_maker_gd/README.md new file mode 100644 index 0000000..f5f42f6 --- /dev/null +++ b/game/addons/mat_maker_gd/README.md @@ -0,0 +1,22 @@ +# mat_maker_gd + +My goal with this project is to take Material Maker's ( https://github.com/RodZill4/material-maker ) code, +and make it an in-godot texture/image generator. + +If it turns out well I'll probably turn it into a c++ engine module eventually. + +Multi threading uses my threadpool engine module for now. + +## Status: + +Missing ~ 60 nodes from ~ 195. + +## TODOS + +- [ ] Go through the current MaterialMaker and add the code from all the new nodes. +- [ ] Go through the current MaterialMaker and update any old code. +- [ ] Add note to all files that has code from MaterialMaker. +- [ ] Proper readme.md. +- [ ] Per node seed like in the original. +- [ ] Port all the nodes. Missing ~ 60 from ~ 195 +- [ ] Somehow get ctrl-s to always just save the edited material, instead of having to double click it (for the inspector to update), and then clicking the save icon and selecting save. diff --git a/game/addons/mat_maker_gd/editor/CreateNamePopup.gd b/game/addons/mat_maker_gd/editor/CreateNamePopup.gd new file mode 100644 index 0000000..c014226 --- /dev/null +++ b/game/addons/mat_maker_gd/editor/CreateNamePopup.gd @@ -0,0 +1,65 @@ +tool +extends ConfirmationDialog + +signal ok_pressed + +export(NodePath) var line_edit_path : NodePath +export(NodePath) var tree_path : NodePath + +export(PoolStringArray) var type_folders : PoolStringArray + +var _resource_type : String = "MMNode" + +var _line_edit : LineEdit +var _tree : Tree + +func _ready(): + _line_edit = get_node(line_edit_path) as LineEdit + _tree = get_node(tree_path) as Tree + + connect("confirmed", self, "_on_OK_pressed") + connect("about_to_show", self, "about_to_show") + +func set_resource_type(resource_type : String) -> void: + _resource_type = resource_type + +func about_to_show(): + _tree.clear() + + var root : TreeItem = _tree.create_item() + + for s in type_folders: + evaluate_folder(s, root) + +func evaluate_folder(folder : String, root : TreeItem) -> void: + var ti : TreeItem = _tree.create_item(root) + ti.set_text(0, folder.substr(folder.find_last("/") + 1)) + + var dir = Directory.new() + if dir.open(folder) == OK: + dir.list_dir_begin() + var file_name = dir.get_next() + while file_name != "": + if !dir.current_is_dir(): + print("Found file: " + file_name) + var e : TreeItem = _tree.create_item(ti) + + e.set_text(0, file_name.get_file()) + e.set_meta("file", folder + "/" + file_name) + + file_name = dir.get_next() + else: + print("An error occurred when trying to access the path.") + +func _on_OK_pressed(): + var selected : TreeItem = _tree.get_selected() + + if selected: + if !selected.has_meta("file"): + hide() + return + + var file_name : String = selected.get_meta("file") + emit_signal("ok_pressed", file_name) + + hide() diff --git a/game/addons/mat_maker_gd/editor/CreateNamePopup.tscn b/game/addons/mat_maker_gd/editor/CreateNamePopup.tscn new file mode 100644 index 0000000..b2f22ac --- /dev/null +++ b/game/addons/mat_maker_gd/editor/CreateNamePopup.tscn @@ -0,0 +1,61 @@ +[gd_scene load_steps=2 format=2] + +[ext_resource path="res://addons/mat_maker_gd/editor/CreateNamePopup.gd" type="Script" id=1] + +[node name="CreateNamePopup" type="ConfirmationDialog"] +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +margin_left = -245.5 +margin_top = -220.0 +margin_right = 245.5 +margin_bottom = 220.0 +window_title = "Create New Resource" +script = ExtResource( 1 ) +__meta__ = { +"_edit_use_anchors_": false +} +line_edit_path = NodePath("VBoxContainer/LineEdit") +tree_path = NodePath("VBoxContainer/Tree") + +[node name="VBoxContainer" type="VBoxContainer" parent="."] +margin_left = 8.0 +margin_top = 8.0 +margin_right = 483.0 +margin_bottom = 404.0 +size_flags_horizontal = 3 +size_flags_vertical = 3 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="Label2" type="Label" parent="VBoxContainer"] +margin_right = 475.0 +margin_bottom = 14.0 +size_flags_horizontal = 3 +text = "Type" + +[node name="Tree" type="Tree" parent="VBoxContainer"] +margin_top = 18.0 +margin_right = 475.0 +margin_bottom = 350.0 +size_flags_horizontal = 3 +size_flags_vertical = 3 +hide_root = true + +[node name="Label" type="Label" parent="VBoxContainer"] +visible = false +margin_top = 354.0 +margin_right = 475.0 +margin_bottom = 368.0 +size_flags_horizontal = 3 +text = "Name" + +[node name="LineEdit" type="LineEdit" parent="VBoxContainer"] +visible = false +margin_top = 372.0 +margin_right = 475.0 +margin_bottom = 396.0 +size_flags_horizontal = 3 +caret_blink = true diff --git a/game/addons/mat_maker_gd/editor/MatMakerGDEditor.gd b/game/addons/mat_maker_gd/editor/MatMakerGDEditor.gd new file mode 100644 index 0000000..3b3cf5a --- /dev/null +++ b/game/addons/mat_maker_gd/editor/MatMakerGDEditor.gd @@ -0,0 +1,218 @@ +tool +extends MarginContainer + +var MMGraphNode = preload("res://addons/mat_maker_gd/editor/mm_graph_node.gd") + +export(NodePath) var graph_edit_path : NodePath = "VBoxContainer/GraphEdit" +export(NodePath) var add_popup_path : NodePath = "Popups/AddPopup" + +var _graph_edit : GraphEdit = null + +var _material : MMMaterial +var _ignore_material_change_event : int = 0 +var _recreation_in_progress : bool = false + +var _plugin : EditorPlugin = null +var _undo_redo : UndoRedo = null + +func _enter_tree(): + ensure_objs() + +func set_plugin(plugin : EditorPlugin) -> void: + _plugin = plugin + _undo_redo = plugin.get_undo_redo() + +func get_undo_redo() -> UndoRedo: + return _undo_redo + +func ensure_objs() -> void: + if !_graph_edit: + _graph_edit = get_node(graph_edit_path) + + _graph_edit.add_valid_connection_type(MMNodeUniversalProperty.SLOT_TYPE_IMAGE, MMNodeUniversalProperty.SLOT_TYPE_UNIVERSAL) + _graph_edit.add_valid_connection_type(MMNodeUniversalProperty.SLOT_TYPE_INT, MMNodeUniversalProperty.SLOT_TYPE_UNIVERSAL) + _graph_edit.add_valid_connection_type(MMNodeUniversalProperty.SLOT_TYPE_FLOAT, MMNodeUniversalProperty.SLOT_TYPE_UNIVERSAL) + _graph_edit.add_valid_connection_type(MMNodeUniversalProperty.SLOT_TYPE_VECTOR2, MMNodeUniversalProperty.SLOT_TYPE_UNIVERSAL) + _graph_edit.add_valid_connection_type(MMNodeUniversalProperty.SLOT_TYPE_VECTOR3, MMNodeUniversalProperty.SLOT_TYPE_UNIVERSAL) + _graph_edit.add_valid_connection_type(MMNodeUniversalProperty.SLOT_TYPE_COLOR, MMNodeUniversalProperty.SLOT_TYPE_UNIVERSAL) + + _graph_edit.add_valid_connection_type(MMNodeUniversalProperty.SLOT_TYPE_UNIVERSAL, MMNodeUniversalProperty.SLOT_TYPE_IMAGE) + _graph_edit.add_valid_connection_type(MMNodeUniversalProperty.SLOT_TYPE_UNIVERSAL, MMNodeUniversalProperty.SLOT_TYPE_INT) + _graph_edit.add_valid_connection_type(MMNodeUniversalProperty.SLOT_TYPE_UNIVERSAL, MMNodeUniversalProperty.SLOT_TYPE_FLOAT) + _graph_edit.add_valid_connection_type(MMNodeUniversalProperty.SLOT_TYPE_UNIVERSAL, MMNodeUniversalProperty.SLOT_TYPE_VECTOR2) + _graph_edit.add_valid_connection_type(MMNodeUniversalProperty.SLOT_TYPE_UNIVERSAL, MMNodeUniversalProperty.SLOT_TYPE_VECTOR3) + _graph_edit.add_valid_connection_type(MMNodeUniversalProperty.SLOT_TYPE_UNIVERSAL, MMNodeUniversalProperty.SLOT_TYPE_COLOR) + + _graph_edit.add_valid_connection_type(MMNodeUniversalProperty.SLOT_TYPE_UNIVERSAL, MMNodeUniversalProperty.SLOT_TYPE_UNIVERSAL) + + _graph_edit.add_valid_connection_type(MMNodeUniversalProperty.SLOT_TYPE_IMAGE, MMNodeUniversalProperty.SLOT_TYPE_IMAGE) + _graph_edit.add_valid_connection_type(MMNodeUniversalProperty.SLOT_TYPE_INT, MMNodeUniversalProperty.SLOT_TYPE_INT) + _graph_edit.add_valid_connection_type(MMNodeUniversalProperty.SLOT_TYPE_FLOAT, MMNodeUniversalProperty.SLOT_TYPE_FLOAT) + _graph_edit.add_valid_connection_type(MMNodeUniversalProperty.SLOT_TYPE_VECTOR2, MMNodeUniversalProperty.SLOT_TYPE_VECTOR2) + _graph_edit.add_valid_connection_type(MMNodeUniversalProperty.SLOT_TYPE_VECTOR3, MMNodeUniversalProperty.SLOT_TYPE_VECTOR3) + _graph_edit.add_valid_connection_type(MMNodeUniversalProperty.SLOT_TYPE_COLOR, MMNodeUniversalProperty.SLOT_TYPE_COLOR) + + _graph_edit.connect("connection_request", self, "on_graph_edit_connection_request") + _graph_edit.connect("disconnection_request", self, "on_graph_edit_disconnection_request") + +func recreate() -> void: + ignore_changes(true) + + if _recreation_in_progress: + return + + _recreation_in_progress = true + + ensure_objs() + + _graph_edit.clear_connections() + + for c in _graph_edit.get_children(): + if c is GraphNode: + _graph_edit.remove_child(c) + c.queue_free() + + if !_material: + return + + _material.cancel_render_and_wait() + + for n in _material.nodes: + var gn : GraphNode = MMGraphNode.new() + gn.set_editor(self) + gn.set_node(_material, n) + _graph_edit.add_child(gn) + + #connect them + for n in _material.nodes: + if n: + for ip in n.input_properties: + if ip.input_property: + var input_node : Node = find_graph_node_for(n) + var output_node : Node = find_graph_node_for(ip.input_property.owner) + + var to_slot : int = input_node.get_input_property_graph_node_slot_index(ip) + var from_slot : int = output_node.get_output_property_graph_node_slot_index(ip.input_property) + + _graph_edit.connect_node(output_node.name, from_slot, input_node.name, to_slot) + + _material.render() + + _recreation_in_progress = false + + ignore_changes(false) + +func find_graph_node_for(nnode) -> Node: + for c in _graph_edit.get_children(): + if c is GraphNode: + if c.has_method("get_material_node"): + var n = c.get_material_node() + + if n == nnode: + return c + + return null + +func set_mmmaterial(object : MMMaterial): + if _material: + _material.disconnect("changed", self, "on_material_changed") + + _material = object + + recreate() + + if _material: + _material.connect("changed", self, "on_material_changed") + +func on_material_changed() -> void: + if _ignore_material_change_event > 0: + return + + if _recreation_in_progress: + return + + call_deferred("recreate") + +func ignore_changes(val : bool) -> void: + if val: + _ignore_material_change_event += 1 + else: + _ignore_material_change_event -= 1 + +func on_graph_edit_connection_request(from: String, from_slot: int, to: String, to_slot: int): + var from_node : GraphNode = _graph_edit.get_node(from) + var to_node : GraphNode = _graph_edit.get_node(to) + + ignore_changes(true) + + _material.cancel_render_and_wait() + + if from_node.connect_slot(from_slot, to_node, to_slot): + _graph_edit.connect_node(from, from_slot, to, to_slot) + + ignore_changes(false) + +func on_graph_edit_disconnection_request(from: String, from_slot: int, to: String, to_slot: int): + var from_node : GraphNode = _graph_edit.get_node(from) + var to_node : GraphNode = _graph_edit.get_node(to) + + ignore_changes(true) + + _material.cancel_render_and_wait() + + if from_node.disconnect_slot(from_slot, to_node, to_slot): + _graph_edit.disconnect_node(from, from_slot, to, to_slot) + + ignore_changes(false) + +func on_graph_node_close_request(node : GraphNode) -> void: + if _material: + ignore_changes(true) + + _material.cancel_render_and_wait() + + #_material.remove_node(node._node) + + _undo_redo.create_action("MMGD: Remove Node") + _undo_redo.add_do_method(_material, "remove_node", node._node) + _undo_redo.add_undo_method(_material, "add_node", node._node) + _undo_redo.commit_action() + + recreate() + + ignore_changes(false) + +func _on_AddButton_pressed(): + get_node(add_popup_path).popup_centered() + +func _on_AddPopup_ok_pressed(script_path : String): + if !_material: + return + + ensure_objs() + + _material.cancel_render_and_wait() + + var sc = load(script_path) + var nnode : MMNode = sc.new() + + if !nnode: + print("_on_AddPopup_ok_pressed: Error !nnode! script: " + script_path) + return + + ignore_changes(true) + + #_material.add_node(nnode) + + _undo_redo.create_action("MMGD: Add Node") + _undo_redo.add_do_method(_material, "add_node", nnode) + _undo_redo.add_undo_method(_material, "remove_node", nnode) + _undo_redo.commit_action() + + var gn : GraphNode = MMGraphNode.new() + gn.set_editor(self) + gn.set_node(_material, nnode) + _graph_edit.add_child(gn) + + ignore_changes(false) + diff --git a/game/addons/mat_maker_gd/editor/MatMakerGDEditor.tscn b/game/addons/mat_maker_gd/editor/MatMakerGDEditor.tscn new file mode 100644 index 0000000..1228ed0 --- /dev/null +++ b/game/addons/mat_maker_gd/editor/MatMakerGDEditor.tscn @@ -0,0 +1,51 @@ +[gd_scene load_steps=3 format=2] + +[ext_resource path="res://addons/mat_maker_gd/editor/MatMakerGDEditor.gd" type="Script" id=1] +[ext_resource path="res://addons/mat_maker_gd/editor/CreateNamePopup.tscn" type="PackedScene" id=2] + +[node name="MatMakerGDEditor" type="MarginContainer"] +anchor_right = 1.0 +anchor_bottom = 1.0 +rect_min_size = Vector2( 0, 200 ) +size_flags_horizontal = 3 +size_flags_vertical = 3 +script = ExtResource( 1 ) + +[node name="VBoxContainer" type="VBoxContainer" parent="."] +margin_right = 1024.0 +margin_bottom = 600.0 + +[node name="PanelContainer" type="PanelContainer" parent="VBoxContainer"] +margin_right = 1024.0 +margin_bottom = 34.0 + +[node name="HBoxContainer" type="HBoxContainer" parent="VBoxContainer/PanelContainer"] +margin_left = 7.0 +margin_top = 7.0 +margin_right = 1017.0 +margin_bottom = 27.0 + +[node name="AddButton" type="Button" parent="VBoxContainer/PanelContainer/HBoxContainer"] +margin_right = 37.0 +margin_bottom = 20.0 +text = "Add" + +[node name="GraphEdit" type="GraphEdit" parent="VBoxContainer"] +margin_top = 38.0 +margin_right = 1024.0 +margin_bottom = 600.0 +size_flags_horizontal = 3 +size_flags_vertical = 3 +right_disconnects = true +scroll_offset = Vector2( 0, -20 ) + +[node name="Popups" type="Control" parent="."] +margin_right = 1024.0 +margin_bottom = 600.0 +mouse_filter = 2 + +[node name="AddPopup" parent="Popups" instance=ExtResource( 2 )] +type_folders = PoolStringArray( "res://addons/mat_maker_gd/nodes/uniform", "res://addons/mat_maker_gd/nodes/noise", "res://addons/mat_maker_gd/nodes/filter", "res://addons/mat_maker_gd/nodes/gradient", "res://addons/mat_maker_gd/nodes/pattern", "res://addons/mat_maker_gd/nodes/sdf2d", "res://addons/mat_maker_gd/nodes/sdf3d", "res://addons/mat_maker_gd/nodes/transform", "res://addons/mat_maker_gd/nodes/simple", "res://addons/mat_maker_gd/nodes/other" ) + +[connection signal="pressed" from="VBoxContainer/PanelContainer/HBoxContainer/AddButton" to="." method="_on_AddButton_pressed"] +[connection signal="ok_pressed" from="Popups/AddPopup" to="." method="_on_AddPopup_ok_pressed"] diff --git a/game/addons/mat_maker_gd/editor/mm_graph_node.gd b/game/addons/mat_maker_gd/editor/mm_graph_node.gd new file mode 100644 index 0000000..a5f753d --- /dev/null +++ b/game/addons/mat_maker_gd/editor/mm_graph_node.gd @@ -0,0 +1,742 @@ +tool +extends GraphNode + +var gradient_editor_scene : PackedScene = preload("res://addons/mat_maker_gd/widgets/gradient_editor/gradient_editor.tscn") +var polygon_edit_scene : PackedScene = preload("res://addons/mat_maker_gd/widgets/polygon_edit/polygon_edit.tscn") +var curve_edit_scene : PackedScene = preload("res://addons/mat_maker_gd/widgets/curve_edit/curve_edit.tscn") + +var _material : MMMaterial = null +var _node : MMNode = null +var properties : Array = Array() + +var _editor_node +var _undo_redo : UndoRedo = null +var _ignore_change_event : bool = false + +func _init(): + show_close = true + connect("dragged", self, "on_dragged") + connect("close_request", self, "on_close_request") + +func set_editor(editor_node) -> void: + _editor_node = editor_node + + _undo_redo = _editor_node.get_undo_redo() + +func ignore_changes(val : bool) -> void: + _ignore_change_event = val + _editor_node.ignore_changes(val) + +func add_slot_texture(getter : String, setter : String) -> int: + var t : TextureRect = TextureRect.new() + t.rect_min_size = Vector2(128, 128) + t.expand = true + t.stretch_mode = TextureRect.STRETCH_KEEP_ASPECT_CENTERED + + var slot_idx : int = add_slot(MMNodeUniversalProperty.SLOT_TYPE_NONE, MMNodeUniversalProperty.SLOT_TYPE_NONE, getter, setter, t) + + t.texture = _node.call(getter, _material, slot_idx) + properties[slot_idx].append(t.texture) + + return slot_idx + +func add_slot_texture_universal(property : MMNodeUniversalProperty) -> int: + var t : TextureRect = TextureRect.new() + t.rect_min_size = Vector2(128, 128) + t.expand = true + t.stretch_mode = TextureRect.STRETCH_KEEP_ASPECT_CENTERED + + var slot_idx : int = add_slot(property.input_slot_type, property.output_slot_type, "", "", t) + + var img : Image = property.get_active_image() + + var tex : ImageTexture = ImageTexture.new() + + if img: + tex.create_from_image(img, 0) + + t.texture = tex + + properties[slot_idx].append(property) + + property.connect("changed", self, "on_universal_texture_changed", [ slot_idx ]) + + return slot_idx + +func add_slot_image_path_universal(property : MMNodeUniversalProperty, getter : String, setter : String) -> int: + var t : TextureButton = load("res://addons/mat_maker_gd/widgets/image_picker_button/image_picker_button.tscn").instance() + + var slot_idx : int = add_slot(property.input_slot_type, property.output_slot_type, "", "", t) + + properties[slot_idx].append(property) + properties[slot_idx].append(getter) + properties[slot_idx].append(setter) + + property.connect("changed", self, "on_universal_texture_changed_image_picker", [ slot_idx ]) + + t.connect("on_file_selected", self, "on_universal_image_path_changed", [ slot_idx ]) + + t.call_deferred("do_set_image_path", _node.call(getter)) + + return slot_idx + + +func add_slot_gradient() -> int: + var ge : Control = gradient_editor_scene.instance() + ge.graph_node = self + ge.set_undo_redo(_undo_redo) + + var slot_idx : int = add_slot(MMNodeUniversalProperty.SLOT_TYPE_NONE, MMNodeUniversalProperty.SLOT_TYPE_NONE, "", "", ge) + + ge.set_value(_node) + #ge.texture = _node.call(getter, _material, slot_idx) + #properties[slot_idx].append(ge.texture) + + return slot_idx + +func add_slot_polygon() -> int: + var ge : Control = polygon_edit_scene.instance() + + var slot_idx : int = add_slot(MMNodeUniversalProperty.SLOT_TYPE_NONE, MMNodeUniversalProperty.SLOT_TYPE_NONE, "", "", ge) + + ge.set_value(_node) + #ge.texture = _node.call(getter, _material, slot_idx) + #properties[slot_idx].append(ge.texture) + + return slot_idx + +func add_slot_curve() -> int: + var ge : Control = curve_edit_scene.instance() + + var slot_idx : int = add_slot(MMNodeUniversalProperty.SLOT_TYPE_NONE, MMNodeUniversalProperty.SLOT_TYPE_NONE, "", "", ge) + + ge.set_value(_node) + #ge.texture = _node.call(getter, _material, slot_idx) + #properties[slot_idx].append(ge.texture) + + return slot_idx + +func add_slot_color(getter : String, setter : String) -> int: + var cp : ColorPickerButton = ColorPickerButton.new() + + var slot_idx : int = add_slot(MMNodeUniversalProperty.SLOT_TYPE_NONE, MMNodeUniversalProperty.SLOT_TYPE_NONE, getter, setter, cp) + + cp.color = _node.call(getter) + + cp.connect("color_changed", _node, setter) + + return slot_idx + +func add_slot_color_universal(property : MMNodeUniversalProperty) -> int: + var cp : ColorPickerButton = ColorPickerButton.new() + + var slot_idx : int = add_slot(property.input_slot_type, property.output_slot_type, "", "", cp) + + cp.color = property.get_default_value() + + properties[slot_idx].append(property) + + cp.connect("color_changed", self, "on_universal_color_changed", [ slot_idx ]) + + return slot_idx + +func add_slot_label(getter : String, setter : String, slot_name : String) -> int: + var l : Label = Label.new() + + l.text = slot_name + + return add_slot(MMNodeUniversalProperty.SLOT_TYPE_NONE, MMNodeUniversalProperty.SLOT_TYPE_NONE, getter, setter, l) + +func add_slot_line_edit(getter : String, setter : String, slot_name : String, placeholder : String = "") -> int: + var bc : VBoxContainer = VBoxContainer.new() + + var l : Label = Label.new() + l.text = slot_name + bc.add_child(l) + + var le : LineEdit = LineEdit.new() + le.placeholder_text = placeholder + bc.add_child(le) + + var slot_idx : int = add_slot(MMNodeUniversalProperty.SLOT_TYPE_NONE, MMNodeUniversalProperty.SLOT_TYPE_NONE, getter, setter, bc) + + le.text = _node.call(getter) + + le.connect("text_entered", self, "on_slot_line_edit_text_entered", [ slot_idx ]) + + return slot_idx + +func add_slot_enum(getter : String, setter : String, slot_name : String, values : Array) -> int: + var bc : VBoxContainer = VBoxContainer.new() + + if slot_name: + var l : Label = Label.new() + l.text = slot_name + bc.add_child(l) + + var mb : OptionButton = OptionButton.new() + + for v in values: + mb.add_item(v) + + bc.add_child(mb) + + var slot_idx : int = add_slot(MMNodeUniversalProperty.SLOT_TYPE_NONE, MMNodeUniversalProperty.SLOT_TYPE_NONE, getter, setter, bc) + + mb.selected = _node.call(getter) + + mb.connect("item_selected", self, "on_slot_enum_item_selected", [ slot_idx ]) + + return slot_idx + +func add_slot_int(getter : String, setter : String, slot_name : String, prange : Vector2 = Vector2(-1000, 1000)) -> int: + var bc : VBoxContainer = VBoxContainer.new() + + var l : Label = Label.new() + l.text = slot_name + bc.add_child(l) + + var sb : SpinBox = SpinBox.new() + sb.rounded = true + sb.min_value = prange.x + sb.max_value = prange.y + bc.add_child(sb) + + var slot_idx : int = add_slot(MMNodeUniversalProperty.SLOT_TYPE_NONE, MMNodeUniversalProperty.SLOT_TYPE_NONE, getter, setter, bc) + + sb.value = _node.call(getter) + + sb.connect("value_changed", self, "on_int_spinbox_value_changed", [ slot_idx ]) + + return slot_idx + +func add_slot_bool(getter : String, setter : String, slot_name : String) -> int: + var cb : CheckBox = CheckBox.new() + cb.text = slot_name + + var slot_idx : int = add_slot(MMNodeUniversalProperty.SLOT_TYPE_NONE, MMNodeUniversalProperty.SLOT_TYPE_NONE, getter, setter, cb) + + cb.pressed = _node.call(getter) + + cb.connect("toggled", _node, setter) + + return slot_idx + +func add_slot_label_universal(property : MMNodeUniversalProperty) -> int: + var l : Label = Label.new() + l.text = property.slot_name + + var slot_idx : int = add_slot(property.input_slot_type, property.output_slot_type, "", "", l) + + properties[slot_idx].append(property) + + return slot_idx + +func add_slot_int_universal(property : MMNodeUniversalProperty) -> int: + var bc : VBoxContainer = VBoxContainer.new() + + var l : Label = Label.new() + l.text = property.slot_name + bc.add_child(l) + + var sb : SpinBox = SpinBox.new() + sb.rounded = true + sb.min_value = property.value_range.x + sb.max_value = property.value_range.y + bc.add_child(sb) + + var slot_idx : int = add_slot(property.input_slot_type, property.output_slot_type, "", "", bc) + + sb.value = property.get_default_value() + + sb.connect("value_changed", self, "on_int_universal_spinbox_value_changed", [ slot_idx ]) + + properties[slot_idx].append(property) + + return slot_idx + +func add_slot_float(getter : String, setter : String, slot_name : String, step : float = 0.1, prange : Vector2 = Vector2(-1000, 1000)) -> int: + var bc : VBoxContainer = VBoxContainer.new() + + var l : Label = Label.new() + l.text = slot_name + bc.add_child(l) + + var sb : SpinBox = SpinBox.new() + bc.add_child(sb) + + var slot_idx : int = add_slot(MMNodeUniversalProperty.SLOT_TYPE_NONE, MMNodeUniversalProperty.SLOT_TYPE_NONE, getter, setter, bc) + sb.rounded = false + sb.step = step + sb.min_value = prange.x + sb.max_value = prange.y + sb.value = _node.call(getter) + + sb.connect("value_changed", self, "on_float_spinbox_value_changed", [ slot_idx ]) + + return slot_idx + +func add_slot_float_universal(property : MMNodeUniversalProperty) -> int: + var bc : VBoxContainer = VBoxContainer.new() + + var l : Label = Label.new() + l.text = property.slot_name + bc.add_child(l) + + var sb : SpinBox = SpinBox.new() + bc.add_child(sb) + + var slot_idx : int = add_slot(property.input_slot_type, property.output_slot_type, "", "", bc) + sb.rounded = false + sb.step = property.value_step + sb.min_value = property.value_range.x + sb.max_value = property.value_range.y + sb.value = property.get_default_value() + + properties[slot_idx].append(property) + + sb.connect("value_changed", self, "on_float_universal_spinbox_value_changed", [ slot_idx ]) + + return slot_idx + +func add_slot_vector2(getter : String, setter : String, slot_name : String, step : float = 0.1, prange : Vector2 = Vector2(-1000, 1000)) -> int: + var bc : VBoxContainer = VBoxContainer.new() + + var l : Label = Label.new() + l.text = slot_name + bc.add_child(l) + + var sbx : SpinBox = SpinBox.new() + bc.add_child(sbx) + + var sby : SpinBox = SpinBox.new() + bc.add_child(sby) + + var slot_idx : int = add_slot(MMNodeUniversalProperty.SLOT_TYPE_NONE, MMNodeUniversalProperty.SLOT_TYPE_NONE, getter, setter, bc) + sbx.rounded = false + sby.rounded = false + sbx.step = step + sby.step = step + sbx.min_value = prange.x + sbx.max_value = prange.y + sby.min_value = prange.x + sby.max_value = prange.y + + var val : Vector2 = _node.call(getter) + + sbx.value = val.x + sby.value = val.y + + sbx.connect("value_changed", self, "on_vector2_spinbox_value_changed", [ slot_idx, sbx, sby ]) + sby.connect("value_changed", self, "on_vector2_spinbox_value_changed", [ slot_idx, sbx, sby ]) + + return slot_idx + +func add_slot_vector3(getter : String, setter : String, slot_name : String, step : float = 0.1, prange : Vector2 = Vector2(-1000, 1000)) -> int: + var bc : VBoxContainer = VBoxContainer.new() + + var l : Label = Label.new() + l.text = slot_name + bc.add_child(l) + + var sbx : SpinBox = SpinBox.new() + bc.add_child(sbx) + + var sby : SpinBox = SpinBox.new() + bc.add_child(sby) + + var sbz : SpinBox = SpinBox.new() + bc.add_child(sbz) + + var slot_idx : int = add_slot(MMNodeUniversalProperty.SLOT_TYPE_NONE, MMNodeUniversalProperty.SLOT_TYPE_NONE, getter, setter, bc) + sbx.rounded = false + sby.rounded = false + sbz.rounded = false + sbx.step = step + sby.step = step + sbz.step = step + sbx.min_value = prange.x + sbx.max_value = prange.y + sby.min_value = prange.x + sby.max_value = prange.y + sbz.min_value = prange.x + sbz.max_value = prange.y + + var val : Vector3 = _node.call(getter) + + sbx.value = val.x + sby.value = val.y + sbz.value = val.z + + sbx.connect("value_changed", self, "on_vector3_spinbox_value_changed", [ slot_idx, sbx, sby, sbz ]) + sby.connect("value_changed", self, "on_vector3_spinbox_value_changed", [ slot_idx, sbx, sby, sbz ]) + sbz.connect("value_changed", self, "on_vector3_spinbox_value_changed", [ slot_idx, sbx, sby, sbz ]) + + return slot_idx + +func add_slot_vector2_universal(property : MMNodeUniversalProperty) -> int: + var bc : VBoxContainer = VBoxContainer.new() + + var l : Label = Label.new() + l.text = property.slot_name + bc.add_child(l) + + var sbx : SpinBox = SpinBox.new() + bc.add_child(sbx) + + var sby : SpinBox = SpinBox.new() + bc.add_child(sby) + + var slot_idx : int = add_slot(property.input_slot_type, property.output_slot_type, "", "", bc) + sbx.rounded = false + sby.rounded = false + sbx.step = property.value_step + sby.step = property.value_step + sbx.min_value = property.value_range.x + sbx.max_value = property.value_range.y + sby.min_value = property.value_range.x + sby.max_value = property.value_range.y + + var val : Vector2 = property.get_default_value() + + sbx.value = val.x + sby.value = val.y + + properties[slot_idx].append(property) + + sbx.connect("value_changed", self, "on_vector2_universal_spinbox_value_changed", [ slot_idx, sbx, sby ]) + sby.connect("value_changed", self, "on_vector2_universal_spinbox_value_changed", [ slot_idx, sbx, sby ]) + + return slot_idx + +func add_slot(input_type : int, output_type : int, getter : String, setter : String, control : Control) -> int: + add_child(control) + var slot_idx : int = get_child_count() - 1 + + var arr : Array = Array() + + arr.append(slot_idx) + arr.append(input_type) + arr.append(output_type) + arr.append(getter) + arr.append(setter) + arr.append(control) + + properties.append(arr) + + set_slot_enabled_left(slot_idx, input_type != -1) + set_slot_enabled_right(slot_idx, output_type != -1) + + if input_type != -1: + set_slot_type_left(slot_idx, input_type) + set_slot_color_left(slot_idx, get_slot_color(input_type)) + + if output_type != -1: + set_slot_type_left(slot_idx, output_type) + set_slot_color_right(slot_idx, get_slot_color(output_type)) + + return slot_idx + +func connect_slot(slot_idx : int, to_node : Node, to_slot_idx : int) -> bool: + var from_property_index : int = -1 + var to_property_index : int = -1 + + for i in range(properties.size()): + if properties[i][2] != -1: + from_property_index += 1 + + if from_property_index == slot_idx: + from_property_index = i + break + + for i in range(to_node.properties.size()): + if to_node.properties[i][1] != -1: + to_property_index += 1 + + if to_property_index == to_slot_idx: + to_property_index = i + break + + #to_node.properties[to_property_index][6].set_input_property(properties[from_property_index][6]) + + _undo_redo.create_action("MMGD: connect_slot") + _undo_redo.add_do_method(to_node.properties[to_property_index][6], "set_input_property", properties[from_property_index][6]) + _undo_redo.add_undo_method(to_node.properties[to_property_index][6], "set_input_property", to_node.properties[to_property_index][6].input_property) + _undo_redo.commit_action() + + return true + +func disconnect_slot(slot_idx : int, to_node : Node, to_slot_idx : int) -> bool: + var from_property_index : int = -1 + var to_property_index : int = -1 + + for i in range(properties.size()): + if properties[i][2] != -1: + from_property_index += 1 + + if from_property_index == slot_idx: + from_property_index = i + break + + for i in range(to_node.properties.size()): + if to_node.properties[i][1] != -1: + to_property_index += 1 + + if to_property_index == to_slot_idx: + to_property_index = i + break + + #to_node.properties[to_property_index][6].set_input_property(null) + + _undo_redo.create_action("MMGD: disconnect_slot") + _undo_redo.add_do_method(to_node.properties[to_property_index][6], "unset_input_property") + _undo_redo.add_undo_method(to_node.properties[to_property_index][6], "set_input_property", to_node.properties[to_property_index][6].input_property) + _undo_redo.commit_action() + + return true + +func get_input_property_graph_node_slot_index(property) -> int: + var property_index : int = -1 + + for i in range(properties.size()): + if properties[i][1] != -1: + property_index += 1 + + if properties[i][6] == property: + break + + return property_index + +func get_output_property_graph_node_slot_index(property) -> int: + var property_index : int = -1 + + for i in range(properties.size()): + if properties[i][2] != -1: + property_index += 1 + + if properties[i][6] == property: + break + + return property_index + +func get_property_control(slot_idx : int) -> Node: + return properties[slot_idx][5] + +func set_node(material : MMMaterial, node : MMNode) -> void: + _node = node + _material = material + + if !_node: + return + + title = _node.get_class() + + if _node.get_script(): + title = _node.get_script().resource_path.get_file().get_basename() + + _node.register_methods(self) + + offset = _node.get_graph_position() + + #_node.connect("changed", self, "on_node_changed") + +func propagate_node_change() -> void: + pass + +func on_dragged(from : Vector2, to : Vector2): + if _node: + ignore_changes(true) + #_node.set_graph_position(offset) + + _undo_redo.create_action("MMGD: value changed") + _undo_redo.add_do_method(_node, "set_graph_position", to) + _undo_redo.add_undo_method(_node, "set_graph_position", from) + _undo_redo.commit_action() + + ignore_changes(false) + +#func on_node_changed(): +# if _ignore_change_event: +# return +# +# _ignore_change_event = true +# propagate_node_change() +# _ignore_change_event = false + +func on_int_spinbox_value_changed(val : float, slot_idx) -> void: + #_node.call(properties[slot_idx][4], int(val)) + + ignore_changes(true) + _undo_redo.create_action("MMGD: value changed") + _undo_redo.add_do_method(_node, properties[slot_idx][4], int(val)) + _undo_redo.add_undo_method(_node, properties[slot_idx][4], _node.call(properties[slot_idx][3])) + _undo_redo.commit_action() + ignore_changes(false) + +func on_float_spinbox_value_changed(val : float, slot_idx) -> void: + #_node.call(properties[slot_idx][4], val) + + ignore_changes(true) + _undo_redo.create_action("MMGD: value changed") + _undo_redo.add_do_method(_node, properties[slot_idx][4], val) + _undo_redo.add_undo_method(_node, properties[slot_idx][4], _node.call(properties[slot_idx][3])) + _undo_redo.commit_action() + ignore_changes(false) + +func on_vector2_spinbox_value_changed(val : float, slot_idx, spinbox_x, spinbox_y) -> void: + var vv : Vector2 = Vector2(spinbox_x.value, spinbox_y.value) + + #_node.call(properties[slot_idx][4], vv) + + ignore_changes(true) + _undo_redo.create_action("MMGD: value changed") + _undo_redo.add_do_method(_node, properties[slot_idx][4], vv) + _undo_redo.add_undo_method(_node, properties[slot_idx][4], _node.call(properties[slot_idx][3])) + _undo_redo.commit_action() + ignore_changes(false) + +func on_vector3_spinbox_value_changed(val : float, slot_idx, spinbox_x, spinbox_y, spinbox_z) -> void: + var vv : Vector3 = Vector3(spinbox_x.value, spinbox_y.value, spinbox_z.value) + + #_node.call(properties[slot_idx][4], vv) + + ignore_changes(true) + _undo_redo.create_action("MMGD: value changed") + _undo_redo.add_do_method(_node, properties[slot_idx][4], vv) + _undo_redo.add_undo_method(_node, properties[slot_idx][4], _node.call(properties[slot_idx][3])) + _undo_redo.commit_action() + ignore_changes(false) + +func on_int_universal_spinbox_value_changed(val : float, slot_idx) -> void: + #properties[slot_idx][6].set_default_value(int(val)) + + ignore_changes(true) + _undo_redo.create_action("MMGD: value changed") + _undo_redo.add_do_method(properties[slot_idx][6], "set_default_value", int(val)) + _undo_redo.add_undo_method(properties[slot_idx][6], "set_default_value", properties[slot_idx][6].get_default_value()) + _undo_redo.commit_action() + ignore_changes(false) + +func on_float_universal_spinbox_value_changed(val : float, slot_idx) -> void: + #properties[slot_idx][6].set_default_value(val) + + ignore_changes(true) + _undo_redo.create_action("MMGD: value changed") + _undo_redo.add_do_method(properties[slot_idx][6], "set_default_value", val) + _undo_redo.add_undo_method(properties[slot_idx][6], "set_default_value", properties[slot_idx][6].get_default_value()) + _undo_redo.commit_action() + ignore_changes(false) + +func on_vector2_universal_spinbox_value_changed(val : float, slot_idx, spinbox_x, spinbox_y) -> void: + var vv : Vector2 = Vector2(spinbox_x.value, spinbox_y.value) + + #properties[slot_idx][6].set_default_value(vv) + + ignore_changes(true) + _undo_redo.create_action("MMGD: value changed") + _undo_redo.add_do_method(properties[slot_idx][6], "set_default_value", vv) + _undo_redo.add_undo_method(properties[slot_idx][6], "set_default_value", properties[slot_idx][6].get_default_value()) + _undo_redo.commit_action() + ignore_changes(false) + +func on_slot_enum_item_selected(val : int, slot_idx : int) -> void: + #_node.call(properties[slot_idx][4], val) + + ignore_changes(true) + _undo_redo.create_action("MMGD: value changed") + _undo_redo.add_do_method(_node, properties[slot_idx][4], val) + _undo_redo.add_undo_method(_node, properties[slot_idx][4], _node.call(properties[slot_idx][3])) + _undo_redo.commit_action() + ignore_changes(false) + +func on_universal_texture_changed(slot_idx : int) -> void: + ignore_changes(true) + + var img : Image = properties[slot_idx][6].get_active_image() + + var tex : ImageTexture = properties[slot_idx][5].texture + + if img: + properties[slot_idx][5].texture.create_from_image(img, 0) + else: + properties[slot_idx][5].texture = ImageTexture.new() + + ignore_changes(false) + +func on_universal_texture_changed_image_picker(slot_idx : int) -> void: + ignore_changes(true) + + var img : Image = properties[slot_idx][6].get_active_image() + + var tex : ImageTexture = properties[slot_idx][5].texture_normal + + if img: + properties[slot_idx][5].texture_normal.create_from_image(img, 0) + else: + properties[slot_idx][5].texture_normal = ImageTexture.new() + + ignore_changes(false) + +func on_slot_line_edit_text_entered(text : String, slot_idx : int) -> void: + #_node.call(properties[slot_idx][4], text) + + ignore_changes(true) + _undo_redo.create_action("MMGD: value changed") + _undo_redo.add_do_method(_node, properties[slot_idx][4], text) + _undo_redo.add_undo_method(_node, properties[slot_idx][4], _node.call(properties[slot_idx][3])) + _undo_redo.commit_action() + ignore_changes(false) + +func on_universal_color_changed(c : Color, slot_idx : int) -> void: + #properties[slot_idx][6].set_default_value(c) + + ignore_changes(true) + _undo_redo.create_action("MMGD: value changed") + _undo_redo.add_do_method(properties[slot_idx][6], "set_default_value", c) + _undo_redo.add_undo_method(properties[slot_idx][6], "set_default_value", properties[slot_idx][6].get_default_value()) + _undo_redo.commit_action() + ignore_changes(false) + +func on_universal_image_path_changed(f : String, slot_idx : int) -> void: + _node.call(properties[slot_idx][8], f) + + ignore_changes(true) + _undo_redo.create_action("MMGD: value changed") + _undo_redo.add_do_method(properties[slot_idx][6], "set_default_value", f) + _undo_redo.add_undo_method(properties[slot_idx][6], "set_default_value", properties[slot_idx][6].get_default_value()) + _undo_redo.commit_action() + ignore_changes(false) + +func get_material_node() -> MMNode: + return _node + +func on_close_request() -> void: + var n : Node = get_parent() + + while n: + if n.has_method("on_graph_node_close_request"): + n.call_deferred("on_graph_node_close_request", self) + return + + n = n.get_parent() + +func get_slot_color(slot_type : int) -> Color: + return _get_slot_color(slot_type) + +func _get_slot_color(slot_type : int) -> Color: + if slot_type == 0: + return Color(0.91, 0.06, 0.06) + elif slot_type == 1: + return Color(0.43, 0.04, 0.04) + elif slot_type == 2: + return Color(0.83, 0.38, 0.38) + elif slot_type == 3: + return Color(0.04, 0.48, 0.43) + elif slot_type == 4: + return Color(0.35, 0.04, 0.34) + elif slot_type == 5: + return Color(0.04, 0.05, 1) + elif slot_type == 6: + return Color(0.37, 0.37, 0.37) + + return Color(1, 1, 1, 1) diff --git a/game/addons/mat_maker_gd/icons/custom.png b/game/addons/mat_maker_gd/icons/custom.png new file mode 100644 index 0000000..45a7a18 Binary files /dev/null and b/game/addons/mat_maker_gd/icons/custom.png differ diff --git a/game/addons/mat_maker_gd/icons/custom.png.import b/game/addons/mat_maker_gd/icons/custom.png.import new file mode 100644 index 0000000..59e2366 --- /dev/null +++ b/game/addons/mat_maker_gd/icons/custom.png.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/custom.png-b026bd10e22818d25d499d2eddb137a8.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://addons/mat_maker_gd/icons/custom.png" +dest_files=[ "res://.import/custom.png-b026bd10e22818d25d499d2eddb137a8.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/game/addons/mat_maker_gd/icons/down.tres b/game/addons/mat_maker_gd/icons/down.tres new file mode 100644 index 0000000..aca6f4c --- /dev/null +++ b/game/addons/mat_maker_gd/icons/down.tres @@ -0,0 +1,8 @@ +[gd_resource type="AtlasTexture" load_steps=2 format=2] + +[ext_resource path="res://addons/mat_maker_gd/icons/icons.tres" type="Texture" id=1] + +[resource] +flags = 4 +atlas = ExtResource( 1 ) +region = Rect2( 32, 48, 16, 16 ) diff --git a/game/addons/mat_maker_gd/icons/edit.tres b/game/addons/mat_maker_gd/icons/edit.tres new file mode 100644 index 0000000..aa39c29 --- /dev/null +++ b/game/addons/mat_maker_gd/icons/edit.tres @@ -0,0 +1,8 @@ +[gd_resource type="AtlasTexture" load_steps=2 format=2] + +[ext_resource path="res://addons/mat_maker_gd/icons/icons.tres" type="Texture" id=1] + +[resource] +flags = 7 +atlas = ExtResource( 1 ) +region = Rect2( 16, 16, 16, 16 ) diff --git a/game/addons/mat_maker_gd/icons/godot_logo.svg b/game/addons/mat_maker_gd/icons/godot_logo.svg new file mode 100644 index 0000000..d7aef39 --- /dev/null +++ b/game/addons/mat_maker_gd/icons/godot_logo.svg @@ -0,0 +1 @@ + diff --git a/game/addons/mat_maker_gd/icons/godot_logo.svg.import b/game/addons/mat_maker_gd/icons/godot_logo.svg.import new file mode 100644 index 0000000..e96628e --- /dev/null +++ b/game/addons/mat_maker_gd/icons/godot_logo.svg.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/godot_logo.svg-4e4bf625f601f4dc5d1d367a2f781011.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://addons/mat_maker_gd/icons/godot_logo.svg" +dest_files=[ "res://.import/godot_logo.svg-4e4bf625f601f4dc5d1d367a2f781011.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/game/addons/mat_maker_gd/icons/icons.svg b/game/addons/mat_maker_gd/icons/icons.svg new file mode 100644 index 0000000..cc85b87 --- /dev/null +++ b/game/addons/mat_maker_gd/icons/icons.svg @@ -0,0 +1,3522 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/game/addons/mat_maker_gd/icons/icons.svg.import b/game/addons/mat_maker_gd/icons/icons.svg.import new file mode 100644 index 0000000..733f804 --- /dev/null +++ b/game/addons/mat_maker_gd/icons/icons.svg.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/icons.svg-bac181e82e23c7264cdf6c36903654b9.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://addons/mat_maker_gd/icons/icons.svg" +dest_files=[ "res://.import/icons.svg-bac181e82e23c7264cdf6c36903654b9.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +process/normal_map_invert_y=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/game/addons/mat_maker_gd/icons/icons.tres b/game/addons/mat_maker_gd/icons/icons.tres new file mode 100644 index 0000000..e347b32 --- /dev/null +++ b/game/addons/mat_maker_gd/icons/icons.tres @@ -0,0 +1,30 @@ +[gd_resource type="ProxyTexture" load_steps=4 format=2] + +[sub_resource type="Image" id=2] +data = { +"data": PoolByteArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 64, 64, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 64, 64, 64, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 13, 13, 13, 0, 13, 13, 13, 0, 13, 13, 13, 0, 13, 13, 13, 0, 13, 13, 13, 0, 13, 13, 13, 0, 13, 13, 13, 0, 13, 13, 13, 0, 13, 13, 13, 0, 13, 13, 13, 0, 12, 12, 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, 10, 10, 10, 0, 13, 13, 13, 0, 11, 11, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 128, 128, 0, 128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 117, 102, 53, 0, 123, 110, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 1, 0, 117, 0, 1, 0, 234, 45, 3, 0, 235, 77, 3, 0, 235, 77, 3, 0, 235, 46, 0, 0, 171, 2, 1, 0, 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, 64, 64, 64, 0, 255, 255, 255, 39, 255, 255, 255, 50, 64, 64, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 191, 191, 191, 6, 128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 128, 128, 0, 255, 255, 255, 71, 255, 255, 255, 191, 255, 255, 255, 254, 255, 255, 255, 235, 255, 255, 255, 128, 191, 191, 191, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 191, 0, 0, 5, 255, 4, 4, 107, 191, 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, 64, 2, 2, 0, 255, 5, 5, 101, 191, 3, 3, 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, 17, 191, 6, 44, 24, 255, 9, 128, 24, 255, 9, 128, 17, 191, 5, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 6, 6, 0, 16, 16, 16, 78, 26, 26, 26, 179, 27, 27, 27, 204, 27, 27, 27, 204, 27, 27, 27, 204, 27, 27, 27, 204, 27, 27, 27, 204, 27, 27, 27, 204, 27, 27, 27, 204, 27, 27, 27, 204, 27, 27, 27, 204, 27, 27, 27, 204, 25, 25, 25, 163, 19, 19, 19, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 16, 16, 14, 23, 23, 23, 158, 27, 27, 27, 221, 24, 24, 24, 163, 18, 18, 18, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 64, 64, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 64, 64, 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, 0, 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, 128, 128, 0, 255, 255, 255, 79, 255, 255, 255, 151, 255, 255, 255, 156, 255, 255, 255, 103, 255, 255, 255, 20, 128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61, 54, 29, 0, 242, 214, 113, 59, 241, 213, 111, 143, 247, 221, 116, 164, 247, 221, 116, 113, 244, 216, 114, 31, 122, 109, 58, 0, 55, 55, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 173, 8, 2, 0, 234, 117, 6, 4, 236, 229, 10, 10, 237, 255, 12, 14, 237, 255, 13, 15, 237, 255, 11, 12, 237, 255, 8, 7, 236, 231, 4, 2, 234, 127, 0, 0, 173, 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, 255, 255, 255, 9, 255, 255, 255, 255, 255, 255, 255, 233, 191, 191, 191, 27, 0, 0, 0, 0, 191, 191, 191, 18, 255, 255, 255, 207, 255, 255, 255, 179, 191, 191, 191, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 64, 64, 0, 191, 191, 191, 24, 255, 255, 255, 168, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 241, 255, 255, 255, 253, 255, 255, 255, 255, 255, 255, 255, 148, 128, 128, 128, 0, 0, 0, 0, 0, 191, 0, 0, 6, 255, 6, 6, 175, 255, 9, 9, 255, 255, 6, 6, 163, 191, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 2, 2, 0, 255, 8, 8, 135, 255, 9, 9, 255, 255, 7, 7, 197, 191, 4, 4, 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, 24, 255, 9, 86, 24, 255, 9, 255, 24, 255, 9, 255, 22, 255, 7, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 20, 20, 56, 67, 67, 67, 252, 207, 207, 207, 255, 232, 232, 232, 255, 232, 232, 232, 255, 232, 232, 232, 255, 232, 232, 232, 255, 232, 232, 232, 255, 232, 232, 232, 255, 232, 232, 232, 255, 232, 232, 232, 255, 244, 244, 244, 255, 247, 247, 247, 255, 166, 166, 166, 255, 26, 26, 26, 191, 10, 10, 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, 18, 18, 18, 8, 26, 26, 26, 193, 147, 147, 147, 255, 239, 239, 239, 255, 155, 155, 155, 255, 27, 27, 27, 203, 17, 17, 17, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 191, 191, 7, 255, 255, 255, 105, 255, 255, 255, 162, 255, 255, 255, 176, 255, 255, 255, 153, 255, 255, 255, 132, 255, 255, 255, 114, 255, 255, 255, 95, 255, 255, 255, 77, 255, 255, 255, 51, 255, 255, 255, 22, 128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 64, 64, 0, 191, 191, 191, 6, 255, 255, 255, 75, 255, 255, 255, 95, 255, 255, 255, 38, 128, 128, 128, 0, 191, 191, 191, 2, 255, 255, 255, 167, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 250, 255, 255, 255, 178, 255, 255, 255, 87, 191, 191, 191, 8, 128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 170, 147, 74, 2, 246, 220, 115, 63, 247, 220, 116, 99, 247, 219, 116, 50, 120, 106, 56, 0, 120, 106, 55, 0, 247, 220, 116, 129, 248, 221, 117, 255, 249, 230, 155, 255, 251, 237, 184, 255, 249, 232, 168, 255, 243, 217, 117, 254, 244, 217, 115, 192, 235, 219, 113, 100, 185, 164, 86, 16, 122, 110, 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, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 176, 29, 4, 13, 223, 206, 9, 43, 204, 255, 19, 27, 234, 255, 24, 33, 239, 255, 27, 38, 240, 255, 28, 39, 240, 255, 26, 36, 240, 255, 22, 30, 239, 255, 16, 20, 238, 255, 8, 8, 236, 216, 1, 0, 117, 35, 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, 128, 128, 0, 255, 255, 255, 233, 255, 255, 255, 255, 255, 255, 255, 197, 255, 255, 255, 22, 255, 255, 255, 206, 255, 255, 255, 255, 255, 255, 255, 205, 128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 191, 191, 2, 255, 255, 255, 103, 255, 255, 255, 239, 255, 255, 255, 255, 255, 255, 255, 240, 255, 255, 255, 106, 191, 191, 191, 5, 255, 255, 255, 46, 255, 255, 255, 244, 255, 255, 255, 250, 255, 255, 255, 23, 128, 2, 2, 0, 255, 6, 6, 142, 255, 9, 9, 255, 255, 9, 9, 255, 255, 9, 9, 255, 255, 6, 6, 165, 191, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 64, 2, 2, 0, 255, 8, 8, 138, 255, 9, 9, 255, 255, 9, 9, 255, 255, 9, 9, 255, 255, 8, 8, 172, 128, 4, 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, 24, 255, 9, 85, 24, 255, 9, 255, 24, 255, 9, 255, 22, 255, 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, 13, 13, 13, 123, 158, 158, 158, 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, 45, 45, 45, 248, 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, 16, 16, 16, 3, 26, 26, 26, 173, 139, 139, 139, 255, 246, 246, 246, 255, 246, 246, 246, 255, 246, 246, 246, 255, 155, 155, 155, 255, 26, 26, 26, 193, 15, 15, 15, 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, 10, 10, 10, 0, 13, 13, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 64, 64, 0, 191, 191, 191, 9, 255, 255, 255, 46, 255, 255, 255, 51, 255, 255, 255, 51, 255, 255, 255, 51, 255, 255, 255, 46, 255, 255, 255, 26, 255, 255, 255, 26, 255, 255, 255, 24, 128, 128, 128, 0, 128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 191, 191, 191, 15, 255, 255, 255, 202, 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, 196, 255, 255, 255, 38, 64, 64, 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, 64, 64, 64, 0, 255, 255, 255, 68, 255, 255, 255, 237, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 205, 255, 255, 255, 137, 255, 255, 255, 170, 255, 255, 255, 235, 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, 241, 255, 255, 255, 158, 255, 255, 255, 65, 191, 191, 191, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 23, 0, 138, 132, 67, 43, 248, 221, 116, 223, 248, 222, 122, 255, 245, 220, 126, 255, 237, 211, 112, 255, 231, 205, 108, 219, 230, 203, 106, 136, 237, 211, 110, 169, 238, 212, 111, 224, 226, 202, 106, 255, 218, 195, 105, 255, 223, 208, 149, 255, 235, 227, 194, 255, 242, 232, 195, 255, 234, 217, 150, 255, 232, 206, 108, 248, 241, 215, 113, 171, 246, 219, 115, 80, 181, 160, 85, 5, 55, 55, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 170, 15, 5, 2, 236, 213, 6, 125, 118, 255, 0, 209, 28, 255, 12, 145, 110, 255, 38, 56, 241, 255, 42, 62, 242, 255, 43, 63, 243, 255, 39, 64, 235, 255, 22, 105, 164, 255, 29, 41, 240, 255, 20, 27, 238, 255, 10, 10, 237, 225, 2, 0, 175, 20, 0, 0, 0, 0, 0, 0, 0, 0, 64, 64, 64, 0, 128, 128, 128, 0, 128, 128, 128, 0, 191, 191, 191, 0, 255, 255, 255, 201, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 241, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 138, 128, 128, 128, 0, 0, 0, 0, 0, 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, 191, 191, 21, 255, 255, 255, 193, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 171, 191, 191, 191, 25, 64, 64, 64, 0, 0, 0, 0, 0, 128, 128, 128, 0, 255, 255, 255, 199, 255, 255, 255, 255, 255, 255, 255, 51, 0, 0, 0, 0, 191, 5, 5, 21, 255, 8, 8, 209, 255, 9, 9, 255, 255, 9, 9, 255, 255, 9, 9, 255, 255, 6, 6, 167, 191, 0, 0, 4, 191, 0, 0, 0, 255, 8, 8, 140, 255, 9, 9, 255, 255, 9, 9, 255, 255, 9, 9, 255, 255, 9, 9, 226, 191, 5, 5, 35, 0, 0, 0, 0, 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, 255, 7, 84, 24, 255, 9, 255, 24, 255, 9, 255, 23, 255, 7, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 22, 22, 70, 81, 81, 81, 254, 235, 235, 235, 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, 241, 241, 241, 255, 232, 232, 232, 255, 161, 161, 161, 255, 26, 26, 26, 189, 9, 9, 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, 7, 7, 7, 0, 20, 20, 20, 151, 117, 117, 117, 255, 246, 246, 246, 255, 246, 246, 246, 255, 246, 246, 246, 255, 246, 246, 246, 255, 246, 246, 246, 255, 143, 143, 143, 255, 24, 24, 24, 181, 16, 16, 16, 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, 3, 3, 3, 0, 11, 11, 11, 37, 23, 23, 23, 154, 26, 26, 26, 172, 16, 16, 16, 64, 6, 6, 6, 0, 0, 0, 0, 0, 191, 191, 191, 0, 255, 255, 255, 113, 255, 255, 255, 245, 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, 242, 255, 255, 255, 149, 191, 191, 191, 20, 128, 128, 128, 0, 255, 255, 255, 146, 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, 239, 255, 255, 255, 54, 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, 50, 255, 255, 255, 248, 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, 252, 255, 255, 255, 189, 255, 255, 255, 151, 255, 255, 255, 79, 255, 255, 255, 145, 255, 255, 255, 234, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 204, 191, 191, 191, 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, 208, 195, 101, 22, 248, 221, 117, 236, 251, 239, 193, 255, 245, 237, 206, 255, 235, 223, 176, 255, 238, 230, 201, 255, 235, 224, 186, 255, 213, 196, 130, 255, 199, 177, 92, 255, 202, 180, 93, 199, 205, 182, 94, 162, 192, 176, 90, 80, 183, 164, 83, 132, 177, 157, 80, 222, 181, 162, 88, 255, 210, 198, 152, 255, 234, 227, 201, 255, 238, 227, 185, 255, 236, 216, 137, 255, 244, 218, 115, 222, 235, 216, 111, 58, 30, 26, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 155, 20, 15, 0, 153, 19, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 0, 3, 1, 224, 145, 13, 15, 237, 255, 20, 58, 207, 255, 0, 207, 30, 255, 0, 209, 28, 255, 28, 137, 146, 255, 56, 87, 245, 255, 48, 105, 212, 255, 10, 184, 68, 255, 0, 208, 29, 255, 32, 85, 203, 255, 31, 44, 240, 255, 20, 26, 238, 255, 7, 6, 233, 162, 1, 0, 114, 0, 0, 0, 0, 0, 255, 255, 255, 41, 255, 255, 255, 179, 255, 255, 255, 179, 255, 255, 255, 154, 255, 255, 255, 224, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 94, 191, 191, 191, 3, 128, 128, 128, 0, 128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 128, 0, 255, 255, 255, 190, 255, 255, 255, 255, 255, 255, 255, 223, 255, 255, 255, 90, 255, 255, 255, 74, 255, 255, 255, 67, 191, 191, 191, 10, 128, 128, 128, 0, 255, 255, 255, 93, 255, 255, 255, 252, 255, 255, 255, 244, 191, 191, 191, 16, 0, 0, 0, 0, 0, 0, 0, 0, 191, 5, 5, 20, 255, 8, 8, 207, 255, 9, 9, 255, 255, 9, 9, 255, 255, 9, 9, 255, 255, 6, 6, 169, 255, 6, 6, 144, 255, 9, 9, 255, 255, 9, 9, 255, 255, 9, 9, 255, 255, 9, 9, 224, 191, 5, 5, 33, 0, 0, 0, 0, 0, 0, 0, 0, 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, 255, 7, 83, 24, 255, 9, 255, 24, 255, 9, 255, 23, 255, 7, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 6, 6, 0, 26, 26, 26, 106, 26, 26, 26, 208, 27, 27, 27, 230, 27, 27, 27, 230, 27, 27, 27, 230, 27, 27, 27, 230, 27, 27, 27, 230, 27, 27, 27, 219, 27, 27, 27, 204, 27, 27, 27, 204, 27, 27, 27, 204, 27, 27, 27, 204, 26, 26, 26, 157, 19, 19, 19, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 6, 6, 0, 26, 26, 26, 126, 98, 98, 98, 255, 244, 244, 244, 255, 246, 246, 246, 255, 246, 246, 246, 255, 230, 230, 230, 255, 246, 246, 246, 255, 246, 246, 246, 255, 246, 246, 246, 255, 131, 131, 131, 255, 24, 24, 24, 170, 14, 14, 14, 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, 6, 6, 6, 0, 23, 23, 23, 74, 46, 46, 46, 240, 169, 169, 169, 255, 190, 190, 190, 255, 56, 56, 56, 252, 26, 26, 26, 36, 64, 64, 64, 0, 255, 255, 255, 121, 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, 216, 255, 255, 255, 24, 255, 255, 255, 57, 255, 255, 255, 82, 255, 255, 255, 102, 255, 255, 255, 74, 255, 255, 255, 35, 255, 255, 255, 54, 255, 255, 255, 77, 255, 255, 255, 98, 255, 255, 255, 116, 255, 255, 255, 135, 255, 255, 255, 153, 255, 255, 255, 201, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 207, 191, 191, 191, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 128, 0, 255, 255, 255, 171, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 177, 255, 255, 255, 137, 255, 255, 255, 211, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 244, 255, 255, 255, 137, 255, 255, 255, 17, 255, 255, 255, 74, 255, 255, 255, 166, 255, 255, 255, 245, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 215, 191, 191, 191, 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, 62, 55, 29, 0, 247, 220, 116, 130, 250, 235, 173, 255, 236, 220, 159, 255, 212, 188, 98, 197, 196, 172, 91, 133, 183, 162, 83, 195, 179, 162, 92, 255, 204, 193, 153, 255, 229, 224, 203, 255, 218, 208, 169, 255, 196, 178, 109, 255, 200, 178, 92, 250, 213, 191, 98, 159, 131, 117, 60, 25, 149, 131, 67, 61, 149, 132, 66, 152, 164, 146, 74, 237, 187, 169, 99, 255, 223, 211, 167, 255, 244, 235, 199, 255, 242, 218, 121, 237, 122, 110, 57, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 207, 27, 43, 0, 207, 27, 183, 0, 153, 19, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 117, 15, 7, 6, 236, 248, 20, 27, 238, 255, 8, 163, 85, 255, 0, 209, 28, 255, 7, 196, 51, 255, 57, 115, 218, 255, 71, 110, 247, 255, 42, 153, 155, 255, 0, 209, 28, 255, 0, 209, 28, 255, 6, 189, 58, 255, 16, 143, 119, 255, 16, 101, 160, 255, 12, 43, 207, 252, 3, 1, 232, 30, 64, 64, 64, 0, 255, 255, 255, 101, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 236, 255, 255, 255, 89, 255, 255, 255, 76, 255, 255, 255, 219, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 234, 255, 255, 255, 128, 128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 30, 255, 255, 255, 255, 255, 255, 255, 220, 255, 255, 255, 146, 255, 255, 255, 243, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 168, 255, 255, 255, 181, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 113, 64, 64, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 191, 5, 5, 19, 255, 8, 8, 206, 255, 9, 9, 255, 255, 9, 9, 255, 255, 9, 9, 255, 255, 8, 8, 255, 255, 9, 9, 255, 255, 9, 9, 255, 255, 9, 9, 223, 191, 5, 5, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 12, 255, 4, 40, 23, 255, 8, 77, 23, 255, 8, 77, 23, 255, 8, 77, 23, 255, 8, 77, 23, 255, 8, 134, 24, 255, 9, 255, 24, 255, 9, 255, 23, 255, 8, 127, 23, 255, 8, 77, 23, 255, 7, 66, 22, 255, 7, 51, 22, 255, 7, 51, 11, 255, 4, 26, 0, 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, 6, 6, 6, 0, 13, 13, 13, 0, 13, 13, 13, 0, 13, 13, 13, 0, 13, 13, 13, 0, 13, 13, 13, 0, 13, 13, 13, 0, 13, 13, 13, 0, 13, 13, 13, 0, 13, 13, 13, 0, 13, 13, 13, 0, 13, 13, 13, 0, 26, 26, 26, 0, 13, 13, 13, 0, 14, 14, 14, 0, 14, 14, 14, 0, 14, 14, 14, 0, 14, 14, 14, 0, 14, 14, 14, 0, 14, 14, 14, 0, 14, 14, 14, 0, 13, 13, 13, 0, 6, 6, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 6, 6, 0, 25, 25, 25, 102, 81, 81, 81, 254, 240, 240, 240, 255, 246, 246, 246, 255, 246, 246, 246, 255, 175, 175, 175, 255, 28, 28, 28, 250, 153, 153, 153, 255, 246, 246, 246, 255, 246, 246, 246, 255, 246, 246, 246, 255, 118, 118, 118, 255, 20, 20, 20, 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, 13, 13, 13, 0, 26, 26, 26, 116, 67, 67, 67, 252, 220, 220, 220, 255, 246, 246, 246, 255, 246, 246, 246, 255, 138, 138, 138, 254, 26, 26, 26, 103, 191, 191, 191, 17, 255, 255, 255, 241, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 184, 255, 255, 255, 153, 255, 255, 255, 153, 255, 255, 255, 163, 255, 255, 255, 179, 255, 255, 255, 179, 255, 255, 255, 179, 255, 255, 255, 179, 255, 255, 255, 234, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 173, 128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 64, 64, 0, 128, 128, 128, 0, 128, 128, 128, 0, 255, 255, 255, 127, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 73, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 191, 191, 191, 1, 255, 255, 255, 249, 255, 255, 255, 255, 255, 255, 255, 174, 191, 191, 191, 0, 64, 64, 64, 0, 128, 128, 128, 0, 255, 255, 255, 57, 255, 255, 255, 156, 255, 255, 255, 228, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 193, 191, 191, 191, 8, 128, 128, 128, 0, 191, 191, 191, 13, 255, 255, 255, 94, 255, 255, 255, 207, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 129, 128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 123, 110, 58, 0, 247, 220, 116, 209, 247, 238, 205, 255, 213, 190, 99, 210, 148, 135, 68, 4, 46, 39, 21, 0, 85, 74, 38, 0, 170, 157, 81, 35, 171, 151, 77, 149, 140, 125, 62, 216, 163, 149, 94, 255, 206, 198, 164, 255, 232, 226, 203, 255, 215, 199, 137, 255, 217, 193, 101, 219, 172, 151, 78, 22, 70, 61, 30, 0, 105, 96, 48, 6, 158, 141, 70, 81, 174, 156, 80, 187, 203, 184, 108, 255, 243, 233, 195, 255, 242, 216, 113, 169, 122, 109, 57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 104, 14, 0, 0, 104, 14, 0, 0, 104, 14, 0, 0, 104, 14, 0, 0, 104, 14, 0, 0, 104, 14, 0, 0, 104, 14, 0, 0, 104, 14, 0, 0, 104, 14, 0, 0, 104, 14, 0, 0, 207, 27, 43, 0, 209, 28, 255, 0, 206, 27, 182, 0, 150, 20, 7, 0, 0, 0, 0, 3, 0, 235, 84, 12, 13, 237, 255, 19, 71, 194, 255, 0, 209, 28, 255, 5, 199, 46, 255, 56, 119, 212, 255, 77, 120, 248, 255, 85, 133, 250, 255, 77, 145, 224, 255, 0, 209, 28, 255, 0, 209, 28, 255, 0, 209, 28, 255, 0, 209, 28, 255, 0, 209, 28, 255, 8, 114, 135, 255, 7, 7, 234, 102, 0, 0, 0, 0, 128, 128, 128, 0, 255, 255, 255, 81, 255, 255, 255, 223, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 123, 64, 64, 64, 0, 0, 0, 0, 0, 255, 255, 255, 85, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 148, 128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 38, 255, 255, 255, 185, 255, 255, 255, 216, 255, 255, 255, 255, 255, 255, 255, 254, 255, 255, 255, 188, 255, 255, 255, 181, 255, 255, 255, 245, 255, 255, 255, 255, 255, 255, 255, 234, 255, 255, 255, 89, 64, 64, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 191, 5, 5, 18, 255, 8, 8, 204, 255, 9, 9, 255, 255, 9, 9, 255, 255, 9, 9, 255, 255, 8, 8, 255, 255, 9, 9, 221, 191, 6, 6, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 12, 255, 5, 133, 24, 255, 9, 255, 24, 255, 9, 255, 24, 255, 9, 255, 24, 255, 9, 255, 24, 255, 9, 255, 24, 255, 9, 255, 24, 255, 9, 255, 24, 255, 9, 255, 24, 255, 9, 255, 24, 255, 9, 255, 24, 255, 9, 255, 24, 255, 9, 255, 12, 255, 5, 132, 0, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 42, 27, 27, 27, 197, 45, 45, 45, 251, 50, 50, 50, 255, 50, 50, 50, 255, 50, 50, 50, 255, 50, 50, 50, 255, 50, 50, 50, 255, 50, 50, 50, 255, 63, 63, 63, 255, 31, 31, 31, 225, 25, 25, 25, 75, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5, 0, 24, 24, 24, 80, 66, 66, 66, 252, 233, 233, 233, 255, 246, 246, 246, 255, 246, 246, 246, 255, 192, 192, 192, 255, 33, 33, 33, 221, 25, 25, 25, 37, 27, 27, 27, 200, 164, 164, 164, 255, 246, 246, 246, 255, 246, 246, 246, 255, 244, 244, 244, 255, 106, 106, 106, 255, 20, 20, 20, 143, 6, 6, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 19, 19, 8, 26, 26, 26, 161, 98, 98, 98, 255, 237, 237, 237, 255, 246, 246, 246, 255, 246, 246, 246, 255, 237, 237, 237, 255, 69, 69, 69, 253, 25, 25, 25, 54, 255, 255, 255, 59, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 129, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 191, 191, 191, 4, 255, 255, 255, 26, 255, 255, 255, 26, 255, 255, 255, 26, 64, 64, 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, 255, 255, 255, 9, 255, 255, 255, 251, 255, 255, 255, 255, 255, 255, 255, 123, 64, 64, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 14, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 12, 255, 255, 255, 245, 255, 255, 255, 174, 255, 255, 255, 146, 255, 255, 255, 160, 255, 255, 255, 243, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 116, 64, 64, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 191, 191, 191, 6, 255, 255, 255, 211, 255, 255, 255, 255, 255, 255, 255, 205, 128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 110, 58, 0, 244, 218, 115, 229, 237, 224, 178, 255, 198, 178, 93, 145, 95, 86, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 118, 108, 56, 0, 242, 215, 114, 220, 219, 194, 101, 188, 162, 143, 73, 147, 147, 130, 62, 149, 162, 145, 74, 235, 216, 205, 165, 255, 215, 195, 121, 255, 228, 200, 103, 157, 104, 91, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 127, 113, 55, 0, 182, 161, 81, 177, 226, 214, 167, 255, 234, 211, 120, 241, 180, 159, 85, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 104, 14, 0, 0, 208, 27, 214, 0, 209, 28, 230, 0, 209, 28, 230, 0, 209, 28, 230, 0, 209, 28, 230, 0, 209, 28, 230, 0, 209, 28, 230, 0, 209, 28, 230, 0, 209, 28, 230, 0, 209, 28, 230, 0, 209, 28, 234, 0, 209, 28, 255, 0, 209, 28, 255, 0, 206, 27, 181, 0, 133, 34, 7, 2, 0, 219, 121, 15, 18, 238, 255, 27, 53, 224, 255, 0, 208, 29, 255, 39, 131, 170, 255, 72, 111, 247, 255, 85, 134, 250, 255, 97, 153, 252, 255, 101, 160, 253, 255, 67, 164, 190, 255, 56, 150, 182, 255, 37, 150, 149, 255, 2, 205, 36, 255, 0, 209, 28, 255, 19, 58, 205, 255, 6, 7, 233, 136, 0, 0, 0, 0, 0, 0, 0, 0, 64, 64, 64, 0, 255, 255, 255, 13, 255, 255, 255, 227, 255, 255, 255, 255, 255, 255, 255, 150, 191, 191, 191, 0, 128, 128, 128, 0, 255, 255, 255, 112, 255, 255, 255, 255, 255, 255, 255, 249, 255, 255, 255, 161, 255, 255, 255, 50, 128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 191, 191, 191, 16, 255, 255, 255, 151, 255, 255, 255, 253, 255, 255, 255, 255, 255, 255, 255, 214, 255, 255, 255, 156, 255, 255, 255, 209, 255, 255, 255, 255, 255, 255, 255, 254, 255, 255, 255, 184, 255, 255, 255, 70, 64, 64, 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, 191, 0, 0, 1, 255, 6, 6, 156, 255, 8, 8, 255, 255, 9, 9, 255, 255, 9, 9, 255, 255, 9, 9, 255, 255, 6, 6, 180, 191, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 12, 255, 5, 131, 24, 255, 9, 255, 24, 255, 9, 255, 24, 255, 9, 255, 24, 255, 9, 255, 24, 255, 9, 255, 24, 255, 9, 255, 24, 255, 9, 255, 24, 255, 9, 255, 24, 255, 9, 255, 24, 255, 9, 255, 24, 255, 9, 255, 24, 255, 9, 255, 12, 255, 5, 133, 0, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 29, 29, 29, 213, 200, 200, 200, 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, 230, 230, 230, 255, 44, 44, 44, 244, 19, 19, 19, 8, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 0, 22, 22, 22, 61, 55, 55, 55, 247, 224, 224, 224, 255, 246, 246, 246, 255, 246, 246, 246, 255, 207, 207, 207, 255, 40, 40, 40, 234, 13, 13, 13, 37, 0, 0, 0, 0, 19, 19, 19, 18, 28, 28, 28, 209, 174, 174, 174, 255, 246, 246, 246, 255, 246, 246, 246, 255, 243, 243, 243, 255, 95, 95, 95, 255, 26, 26, 26, 128, 6, 6, 6, 0, 0, 0, 0, 0, 19, 19, 19, 25, 27, 27, 27, 199, 137, 137, 137, 255, 245, 245, 245, 255, 246, 246, 246, 255, 246, 246, 246, 255, 220, 220, 220, 255, 67, 67, 67, 252, 25, 25, 25, 110, 6, 6, 6, 0, 255, 255, 255, 80, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 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, 64, 64, 64, 0, 255, 255, 255, 38, 255, 255, 255, 36, 255, 255, 255, 17, 128, 128, 128, 0, 128, 128, 128, 0, 64, 64, 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, 255, 255, 255, 13, 255, 255, 255, 253, 255, 255, 255, 255, 255, 255, 255, 139, 128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 191, 191, 191, 7, 255, 255, 255, 245, 255, 255, 255, 255, 255, 255, 255, 153, 128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 128, 0, 255, 255, 255, 181, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 185, 255, 255, 255, 112, 255, 255, 255, 185, 255, 255, 255, 251, 255, 255, 255, 221, 128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 128, 0, 255, 255, 255, 134, 255, 255, 255, 255, 255, 255, 255, 247, 128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 110, 58, 0, 242, 215, 113, 212, 237, 227, 188, 255, 194, 173, 89, 193, 124, 114, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 104, 98, 50, 0, 227, 207, 108, 141, 230, 205, 110, 255, 216, 198, 133, 255, 181, 161, 82, 206, 161, 142, 71, 110, 170, 151, 77, 172, 200, 177, 92, 247, 223, 198, 104, 250, 181, 169, 54, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 181, 160, 81, 94, 215, 199, 138, 255, 237, 221, 157, 255, 243, 214, 112, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 104, 14, 0, 0, 209, 28, 238, 0, 209, 28, 255, 0, 209, 28, 255, 0, 209, 28, 255, 0, 209, 28, 255, 0, 209, 28, 255, 0, 209, 28, 255, 0, 209, 28, 255, 0, 209, 28, 255, 0, 209, 28, 255, 0, 209, 28, 255, 0, 209, 28, 255, 0, 209, 28, 255, 0, 209, 28, 255, 0, 206, 26, 113, 2, 17, 139, 121, 16, 19, 238, 255, 30, 43, 240, 255, 6, 185, 62, 255, 13, 185, 72, 255, 72, 115, 245, 255, 88, 138, 250, 255, 102, 161, 253, 255, 74, 184, 180, 255, 38, 186, 116, 255, 41, 168, 139, 255, 41, 144, 161, 255, 43, 103, 205, 255, 12, 158, 97, 255, 24, 32, 239, 255, 7, 7, 236, 140, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 128, 0, 255, 255, 255, 148, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 255, 255, 255, 167, 255, 255, 255, 153, 255, 255, 255, 249, 255, 255, 255, 255, 255, 255, 255, 229, 255, 255, 255, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 191, 191, 191, 31, 255, 255, 255, 218, 255, 255, 255, 255, 255, 255, 255, 246, 255, 255, 255, 172, 255, 255, 255, 209, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 215, 255, 255, 255, 164, 255, 255, 255, 243, 255, 255, 255, 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, 191, 0, 0, 2, 255, 6, 6, 153, 255, 9, 9, 255, 255, 9, 9, 255, 255, 8, 8, 255, 255, 9, 9, 255, 255, 9, 9, 255, 255, 9, 9, 255, 255, 6, 6, 178, 191, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 12, 255, 4, 39, 23, 255, 8, 77, 23, 255, 8, 77, 23, 255, 8, 77, 23, 255, 8, 77, 22, 255, 8, 127, 24, 255, 9, 255, 24, 255, 9, 255, 23, 255, 8, 133, 23, 255, 8, 92, 23, 255, 8, 102, 23, 255, 8, 102, 23, 255, 8, 102, 12, 255, 4, 54, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5, 0, 13, 13, 13, 0, 13, 13, 13, 0, 13, 13, 13, 0, 13, 13, 13, 0, 13, 13, 13, 0, 13, 13, 13, 0, 12, 12, 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, 13, 13, 13, 6, 50, 50, 50, 251, 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, 78, 78, 78, 255, 25, 25, 25, 33, 0, 0, 0, 0, 0, 0, 0, 0, 6, 6, 6, 44, 45, 45, 45, 239, 213, 213, 213, 255, 246, 246, 246, 255, 246, 246, 246, 255, 219, 219, 219, 255, 49, 49, 49, 243, 13, 13, 13, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 18, 18, 24, 32, 32, 32, 218, 184, 184, 184, 255, 246, 246, 246, 255, 246, 246, 246, 255, 240, 240, 240, 255, 85, 85, 85, 254, 25, 25, 25, 113, 12, 12, 12, 51, 36, 36, 36, 227, 174, 174, 174, 255, 246, 246, 246, 255, 246, 246, 246, 255, 246, 246, 246, 255, 194, 194, 194, 255, 46, 46, 46, 240, 24, 24, 24, 75, 6, 6, 6, 0, 0, 0, 0, 0, 255, 255, 255, 36, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 115, 64, 64, 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, 64, 64, 64, 0, 255, 255, 255, 112, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 236, 255, 255, 255, 161, 255, 255, 255, 139, 255, 255, 255, 120, 255, 255, 255, 102, 255, 255, 255, 77, 255, 255, 255, 58, 255, 255, 255, 39, 255, 255, 255, 38, 255, 255, 255, 166, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 98, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 128, 0, 255, 255, 255, 183, 255, 255, 255, 255, 255, 255, 255, 252, 255, 255, 255, 121, 191, 191, 191, 18, 128, 128, 128, 0, 0, 0, 0, 0, 255, 255, 255, 45, 255, 255, 255, 243, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 235, 255, 255, 255, 168, 255, 255, 255, 167, 255, 255, 255, 5, 64, 64, 64, 0, 0, 0, 0, 0, 128, 128, 128, 0, 255, 255, 255, 167, 255, 255, 255, 255, 255, 255, 255, 231, 128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 116, 110, 56, 0, 234, 214, 111, 143, 239, 227, 183, 255, 201, 182, 109, 255, 161, 146, 58, 148, 141, 126, 51, 28, 65, 58, 27, 0, 21, 21, 0, 0, 175, 158, 84, 21, 244, 218, 115, 227, 238, 223, 163, 255, 233, 225, 195, 255, 196, 181, 124, 255, 160, 142, 72, 243, 156, 136, 69, 175, 179, 160, 81, 165, 212, 192, 98, 32, 37, 33, 17, 0, 0, 0, 0, 0, 44, 38, 20, 0, 183, 161, 82, 126, 220, 207, 153, 255, 235, 217, 146, 255, 243, 211, 110, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 104, 14, 0, 0, 208, 27, 190, 0, 209, 27, 204, 0, 209, 27, 204, 0, 209, 27, 204, 0, 209, 27, 204, 0, 209, 27, 204, 0, 209, 27, 204, 0, 209, 27, 204, 0, 209, 27, 204, 0, 209, 27, 204, 0, 209, 27, 213, 0, 209, 28, 255, 0, 209, 28, 255, 0, 204, 26, 165, 0, 145, 16, 3, 3, 0, 235, 90, 14, 17, 238, 255, 28, 40, 240, 255, 15, 150, 110, 255, 0, 209, 28, 255, 45, 147, 167, 255, 82, 129, 249, 255, 91, 146, 248, 255, 14, 201, 60, 255, 0, 209, 28, 255, 0, 209, 28, 255, 10, 190, 63, 255, 50, 76, 244, 255, 36, 53, 241, 255, 22, 30, 239, 255, 8, 10, 236, 107, 0, 0, 0, 0, 64, 64, 64, 0, 255, 255, 255, 112, 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, 160, 128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 128, 0, 255, 255, 255, 172, 255, 255, 255, 255, 255, 255, 255, 195, 255, 255, 255, 36, 255, 255, 255, 25, 255, 255, 255, 115, 255, 255, 255, 142, 255, 255, 255, 98, 255, 255, 255, 142, 255, 255, 255, 255, 255, 255, 255, 249, 255, 255, 255, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 191, 0, 0, 2, 255, 6, 6, 155, 255, 9, 9, 255, 255, 9, 9, 255, 255, 9, 9, 255, 255, 8, 8, 217, 255, 8, 8, 200, 255, 9, 9, 255, 255, 9, 9, 255, 255, 9, 9, 255, 255, 6, 6, 180, 191, 1, 1, 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, 23, 255, 8, 71, 24, 255, 9, 255, 24, 255, 9, 255, 23, 255, 7, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 6, 6, 0, 24, 24, 24, 108, 26, 26, 26, 186, 27, 27, 27, 204, 27, 27, 27, 204, 27, 27, 27, 204, 27, 27, 27, 204, 27, 27, 27, 204, 25, 25, 25, 161, 13, 13, 13, 49, 0, 0, 0, 0, 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, 10, 10, 0, 26, 26, 26, 179, 138, 138, 138, 255, 207, 207, 207, 255, 209, 209, 209, 255, 209, 209, 209, 255, 209, 209, 209, 255, 209, 209, 209, 255, 209, 209, 209, 255, 209, 209, 209, 255, 190, 190, 190, 255, 140, 140, 140, 255, 27, 27, 27, 199, 3, 3, 3, 0, 0, 0, 0, 0, 19, 19, 19, 30, 36, 36, 36, 228, 199, 199, 199, 255, 246, 246, 246, 255, 246, 246, 246, 255, 229, 229, 229, 255, 61, 61, 61, 250, 23, 23, 23, 70, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 19, 19, 31, 35, 35, 35, 226, 194, 194, 194, 255, 246, 246, 246, 255, 246, 246, 246, 255, 236, 236, 236, 255, 76, 76, 76, 253, 53, 53, 53, 248, 205, 205, 205, 255, 246, 246, 246, 255, 246, 246, 246, 255, 246, 246, 246, 255, 161, 161, 161, 255, 31, 31, 31, 218, 13, 13, 13, 41, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 128, 0, 255, 255, 255, 215, 255, 255, 255, 255, 255, 255, 255, 243, 255, 255, 255, 103, 255, 255, 255, 48, 255, 255, 255, 26, 255, 255, 255, 26, 255, 255, 255, 26, 255, 255, 255, 26, 255, 255, 255, 26, 255, 255, 255, 26, 255, 255, 255, 47, 255, 255, 255, 101, 255, 255, 255, 102, 255, 255, 255, 102, 255, 255, 255, 32, 255, 255, 255, 184, 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, 236, 191, 191, 191, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 64, 64, 0, 255, 255, 255, 54, 255, 255, 255, 250, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 249, 255, 255, 255, 174, 255, 255, 255, 84, 255, 255, 255, 7, 255, 255, 255, 62, 255, 255, 255, 219, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 219, 255, 255, 255, 127, 255, 255, 255, 60, 255, 255, 255, 118, 255, 255, 255, 252, 255, 255, 255, 255, 255, 255, 255, 179, 128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 175, 159, 82, 27, 224, 201, 109, 237, 235, 228, 197, 255, 194, 178, 119, 255, 157, 139, 71, 253, 136, 121, 59, 190, 109, 100, 33, 97, 87, 77, 37, 15, 207, 184, 96, 40, 244, 218, 115, 202, 229, 206, 115, 255, 231, 218, 166, 255, 236, 230, 206, 255, 212, 203, 167, 255, 177, 162, 101, 255, 159, 141, 72, 231, 122, 108, 55, 141, 152, 135, 69, 66, 180, 158, 83, 95, 196, 174, 91, 242, 240, 232, 202, 255, 233, 208, 110, 218, 149, 146, 53, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 104, 13, 0, 0, 104, 13, 0, 0, 104, 13, 0, 0, 104, 13, 0, 0, 104, 13, 0, 0, 104, 13, 0, 0, 104, 13, 0, 0, 104, 13, 0, 0, 104, 13, 0, 0, 104, 13, 0, 0, 207, 27, 43, 0, 209, 28, 255, 0, 204, 26, 166, 0, 143, 16, 3, 0, 0, 0, 0, 2, 0, 233, 22, 10, 10, 236, 251, 24, 33, 239, 255, 15, 138, 121, 255, 6, 193, 53, 255, 58, 102, 232, 255, 72, 112, 247, 255, 73, 129, 232, 255, 3, 205, 37, 255, 0, 209, 28, 255, 0, 209, 28, 255, 24, 152, 124, 255, 45, 67, 243, 255, 31, 45, 241, 255, 18, 23, 238, 254, 3, 3, 234, 34, 0, 0, 0, 0, 64, 64, 64, 0, 255, 255, 255, 119, 255, 255, 255, 245, 255, 255, 255, 166, 255, 255, 255, 75, 255, 255, 255, 194, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 154, 255, 255, 255, 219, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 61, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 128, 0, 255, 255, 255, 241, 255, 255, 255, 255, 191, 191, 191, 17, 0, 0, 0, 0, 0, 0, 0, 0, 191, 191, 191, 0, 255, 255, 255, 70, 255, 255, 255, 220, 255, 255, 255, 255, 255, 255, 255, 251, 255, 255, 255, 98, 64, 64, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 191, 0, 0, 2, 255, 6, 6, 158, 255, 9, 9, 255, 255, 9, 9, 255, 255, 9, 9, 255, 255, 8, 8, 216, 191, 5, 5, 25, 191, 4, 4, 14, 255, 7, 7, 197, 255, 9, 9, 255, 255, 9, 9, 255, 255, 9, 9, 255, 255, 8, 8, 182, 191, 6, 6, 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, 23, 255, 7, 70, 24, 255, 9, 255, 24, 255, 9, 255, 23, 255, 7, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5, 0, 23, 23, 23, 108, 99, 99, 99, 255, 215, 215, 215, 255, 232, 232, 232, 255, 232, 232, 232, 255, 232, 232, 232, 255, 232, 232, 232, 255, 232, 232, 232, 255, 186, 186, 186, 255, 44, 44, 44, 239, 13, 13, 13, 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, 17, 17, 17, 12, 25, 25, 25, 128, 26, 26, 26, 177, 26, 26, 26, 179, 26, 26, 26, 179, 26, 26, 26, 179, 26, 26, 26, 179, 26, 26, 26, 153, 26, 26, 26, 153, 26, 26, 26, 153, 26, 26, 26, 120, 18, 18, 18, 16, 0, 0, 0, 0, 18, 18, 18, 8, 30, 30, 30, 214, 183, 183, 183, 255, 246, 246, 246, 255, 246, 246, 246, 255, 237, 237, 237, 255, 74, 74, 74, 253, 26, 26, 26, 91, 6, 6, 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, 13, 13, 13, 39, 39, 39, 39, 233, 203, 203, 203, 255, 246, 246, 246, 255, 246, 246, 246, 255, 240, 240, 240, 255, 237, 237, 237, 255, 246, 246, 246, 255, 246, 246, 246, 255, 243, 243, 243, 255, 122, 122, 122, 255, 25, 25, 25, 187, 18, 18, 18, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 64, 64, 0, 255, 255, 255, 61, 255, 255, 255, 253, 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, 234, 191, 191, 191, 9, 191, 191, 191, 10, 255, 255, 255, 136, 255, 255, 255, 244, 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, 245, 255, 255, 255, 82, 64, 64, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 64, 64, 0, 255, 255, 255, 104, 255, 255, 255, 252, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 239, 255, 255, 255, 155, 255, 255, 255, 68, 255, 255, 255, 86, 255, 255, 255, 176, 255, 255, 255, 249, 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, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 52, 26, 0, 227, 203, 102, 72, 213, 189, 100, 243, 222, 210, 162, 255, 231, 226, 204, 255, 199, 190, 154, 255, 155, 140, 83, 255, 138, 122, 61, 247, 138, 122, 61, 168, 172, 160, 80, 78, 212, 189, 96, 74, 237, 209, 111, 162, 223, 198, 104, 243, 217, 197, 119, 255, 231, 220, 175, 255, 237, 231, 207, 255, 217, 206, 161, 255, 207, 190, 121, 255, 213, 195, 124, 255, 240, 232, 204, 255, 241, 223, 154, 255, 243, 216, 114, 103, 61, 54, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 207, 27, 43, 0, 206, 25, 167, 0, 147, 14, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 117, 0, 4, 3, 235, 158, 18, 22, 238, 255, 11, 135, 118, 255, 31, 97, 189, 255, 52, 78, 244, 255, 60, 92, 245, 255, 65, 101, 246, 255, 31, 157, 131, 255, 0, 209, 28, 255, 6, 193, 54, 255, 44, 79, 230, 255, 37, 54, 241, 255, 24, 34, 239, 255, 9, 12, 235, 176, 1, 1, 116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 191, 191, 191, 2, 191, 191, 191, 13, 128, 128, 128, 0, 128, 128, 128, 0, 255, 255, 255, 138, 255, 255, 255, 255, 255, 255, 255, 245, 191, 191, 191, 11, 191, 191, 191, 4, 255, 255, 255, 95, 255, 255, 255, 156, 191, 191, 191, 6, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 128, 0, 255, 255, 255, 228, 255, 255, 255, 255, 255, 255, 255, 50, 128, 128, 128, 0, 191, 191, 191, 22, 255, 255, 255, 165, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 202, 255, 255, 255, 48, 64, 64, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 2, 2, 0, 255, 6, 6, 133, 255, 9, 9, 255, 255, 9, 9, 255, 255, 9, 9, 255, 255, 8, 8, 214, 191, 5, 5, 24, 0, 0, 0, 0, 0, 0, 0, 0, 191, 3, 3, 13, 255, 8, 8, 195, 255, 9, 9, 255, 255, 9, 9, 255, 255, 9, 9, 255, 255, 8, 8, 163, 128, 4, 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, 22, 255, 7, 68, 24, 255, 9, 255, 24, 255, 9, 255, 24, 255, 9, 85, 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, 0, 26, 26, 26, 179, 209, 209, 209, 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, 115, 115, 115, 255, 26, 26, 26, 74, 0, 0, 0, 0, 0, 0, 0, 0, 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, 6, 6, 0, 12, 12, 12, 0, 13, 13, 13, 0, 13, 13, 13, 0, 13, 13, 13, 0, 13, 13, 13, 0, 12, 12, 12, 0, 13, 13, 13, 0, 13, 13, 13, 0, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 25, 25, 93, 121, 121, 121, 255, 246, 246, 246, 255, 246, 246, 246, 255, 242, 242, 242, 255, 89, 89, 89, 254, 25, 25, 25, 114, 6, 6, 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, 6, 6, 6, 48, 45, 45, 45, 239, 211, 211, 211, 255, 246, 246, 246, 255, 246, 246, 246, 255, 246, 246, 246, 255, 246, 246, 246, 255, 232, 232, 232, 255, 86, 86, 86, 254, 20, 20, 20, 146, 12, 12, 12, 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, 64, 64, 64, 0, 255, 255, 255, 90, 255, 255, 255, 241, 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, 248, 255, 255, 255, 69, 64, 64, 64, 0, 0, 0, 0, 0, 64, 64, 64, 0, 191, 191, 191, 5, 255, 255, 255, 46, 255, 255, 255, 73, 255, 255, 255, 91, 255, 255, 255, 110, 255, 255, 255, 128, 255, 255, 255, 153, 255, 255, 255, 172, 255, 255, 255, 179, 255, 255, 255, 153, 255, 255, 255, 38, 64, 64, 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, 64, 64, 64, 0, 255, 255, 255, 42, 255, 255, 255, 149, 255, 255, 255, 236, 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, 228, 255, 255, 255, 157, 255, 255, 255, 150, 255, 255, 255, 196, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 255, 255, 255, 112, 64, 64, 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, 55, 46, 23, 0, 216, 183, 93, 27, 207, 185, 96, 134, 194, 172, 90, 225, 198, 181, 118, 255, 220, 210, 175, 255, 225, 220, 197, 255, 200, 189, 147, 255, 176, 158, 86, 255, 184, 164, 84, 255, 198, 176, 91, 238, 218, 193, 101, 162, 236, 210, 109, 151, 235, 209, 109, 183, 230, 205, 108, 251, 236, 216, 141, 255, 246, 232, 179, 255, 248, 235, 182, 255, 246, 224, 141, 255, 233, 213, 102, 149, 160, 160, 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, 155, 17, 11, 0, 150, 14, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 176, 21, 9, 9, 236, 226, 17, 56, 203, 255, 31, 44, 240, 255, 39, 59, 242, 255, 46, 70, 243, 255, 50, 77, 244, 255, 48, 86, 229, 255, 3, 198, 44, 255, 32, 98, 190, 255, 36, 53, 241, 255, 27, 38, 240, 255, 16, 20, 238, 234, 3, 3, 117, 31, 0, 0, 0, 0, 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, 85, 255, 255, 255, 255, 255, 255, 255, 170, 128, 128, 128, 0, 0, 0, 0, 0, 64, 64, 64, 0, 128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 128, 0, 255, 255, 255, 127, 255, 255, 255, 255, 255, 255, 255, 241, 255, 255, 255, 183, 255, 255, 255, 241, 255, 255, 255, 255, 255, 255, 255, 242, 255, 255, 255, 109, 191, 191, 191, 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, 191, 5, 5, 25, 255, 8, 8, 216, 255, 9, 9, 255, 255, 8, 8, 212, 191, 6, 6, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 191, 4, 4, 12, 255, 8, 8, 193, 255, 9, 9, 255, 255, 9, 9, 231, 255, 2, 2, 41, 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, 22, 255, 7, 68, 24, 255, 9, 255, 24, 255, 9, 255, 24, 255, 9, 85, 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, 0, 20, 20, 20, 129, 126, 126, 126, 255, 247, 247, 247, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 223, 223, 223, 255, 55, 55, 55, 250, 24, 24, 24, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 26, 26, 92, 119, 119, 119, 255, 246, 246, 246, 255, 245, 245, 245, 255, 108, 108, 108, 255, 26, 26, 26, 139, 6, 6, 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, 3, 3, 3, 0, 21, 21, 21, 57, 50, 50, 50, 244, 218, 218, 218, 255, 246, 246, 246, 255, 246, 246, 246, 255, 212, 212, 212, 255, 59, 59, 59, 249, 26, 26, 26, 100, 6, 6, 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, 64, 64, 64, 0, 255, 255, 255, 30, 255, 255, 255, 128, 255, 255, 255, 167, 255, 255, 255, 179, 255, 255, 255, 179, 255, 255, 255, 179, 255, 255, 255, 179, 255, 255, 255, 179, 255, 255, 255, 179, 255, 255, 255, 179, 255, 255, 255, 142, 255, 255, 255, 36, 64, 64, 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, 64, 64, 64, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 128, 128, 0, 191, 191, 191, 5, 255, 255, 255, 77, 255, 255, 255, 169, 255, 255, 255, 247, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 203, 191, 191, 191, 10, 255, 255, 255, 34, 255, 255, 255, 120, 255, 255, 255, 173, 255, 255, 255, 141, 255, 255, 255, 52, 64, 64, 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, 52, 47, 24, 0, 153, 118, 44, 1, 201, 177, 91, 63, 199, 175, 92, 155, 196, 175, 91, 239, 216, 200, 140, 255, 236, 227, 192, 255, 238, 230, 201, 255, 237, 225, 179, 255, 236, 211, 113, 255, 247, 220, 116, 226, 182, 165, 86, 26, 232, 219, 113, 22, 226, 209, 96, 108, 248, 220, 116, 169, 245, 218, 113, 153, 246, 219, 114, 68, 109, 103, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 2, 0, 202, 41, 10, 10, 237, 223, 19, 26, 238, 255, 27, 38, 240, 255, 33, 47, 241, 255, 36, 53, 241, 255, 37, 54, 242, 255, 29, 74, 207, 255, 30, 44, 240, 255, 24, 33, 239, 255, 15, 19, 237, 229, 3, 3, 224, 51, 0, 0, 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, 0, 0, 191, 191, 191, 15, 255, 255, 255, 89, 191, 191, 191, 44, 0, 0, 0, 0, 0, 0, 0, 0, 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, 191, 191, 2, 255, 255, 255, 147, 255, 255, 255, 250, 255, 255, 255, 255, 255, 255, 255, 251, 255, 255, 255, 168, 191, 191, 191, 27, 64, 64, 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, 191, 5, 5, 24, 255, 8, 8, 171, 191, 6, 6, 22, 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, 4, 4, 11, 255, 7, 7, 167, 255, 4, 4, 39, 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, 17, 191, 5, 33, 24, 255, 9, 128, 23, 255, 8, 149, 22, 255, 8, 53, 0, 0, 0, 0, 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, 6, 23, 23, 23, 148, 27, 27, 27, 222, 27, 27, 27, 230, 27, 27, 27, 230, 27, 27, 27, 230, 27, 27, 27, 230, 27, 27, 27, 230, 26, 26, 26, 202, 24, 24, 24, 77, 6, 6, 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, 18, 18, 18, 8, 28, 28, 28, 204, 98, 98, 98, 255, 74, 74, 74, 255, 26, 26, 26, 149, 3, 3, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 5, 5, 0, 24, 24, 24, 67, 54, 54, 54, 248, 179, 179, 179, 255, 158, 158, 158, 255, 40, 40, 40, 234, 13, 13, 13, 61, 6, 6, 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, 64, 64, 64, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 128, 128, 0, 191, 191, 191, 15, 255, 255, 255, 97, 255, 255, 255, 184, 255, 255, 255, 235, 255, 255, 255, 219, 255, 255, 255, 140, 191, 191, 191, 15, 0, 0, 0, 0, 0, 0, 0, 0, 64, 64, 64, 0, 128, 128, 128, 0, 128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 103, 89, 47, 0, 161, 140, 71, 7, 219, 194, 101, 84, 229, 204, 107, 173, 236, 210, 111, 227, 244, 217, 114, 228, 245, 217, 115, 160, 184, 163, 86, 27, 0, 0, 0, 0, 0, 0, 0, 0, 48, 48, 16, 0, 124, 110, 58, 0, 122, 108, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 167, 17, 6, 6, 219, 144, 14, 16, 237, 244, 19, 24, 238, 255, 21, 29, 239, 255, 22, 30, 239, 255, 20, 27, 239, 255, 16, 21, 238, 249, 8, 10, 234, 152, 5, 4, 175, 22, 0, 0, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 128, 128, 0, 255, 255, 255, 24, 255, 255, 255, 51, 255, 255, 255, 23, 128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 35, 0, 10, 0, 70, 0, 10, 0, 70, 0, 137, 5, 73, 0, 53, 49, 80, 0, 53, 49, 80, 0, 53, 49, 80, 0, 53, 49, 80, 0, 53, 49, 80, 0, 53, 49, 80, 0, 53, 49, 80, 0, 53, 49, 80, 0, 153, 21, 76, 0, 10, 0, 70, 0, 4, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 43, 5, 0, 99, 88, 10, 0, 99, 88, 10, 0, 99, 88, 10, 0, 99, 88, 10, 0, 99, 88, 10, 0, 99, 88, 10, 0, 109, 215, 13, 0, 104, 151, 12, 0, 99, 88, 10, 0, 99, 87, 9, 0, 47, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 10, 10, 0, 13, 13, 13, 0, 13, 13, 13, 0, 13, 13, 13, 0, 13, 13, 13, 0, 13, 13, 13, 0, 13, 13, 13, 0, 13, 13, 13, 0, 6, 6, 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, 17, 17, 17, 3, 26, 26, 26, 66, 24, 24, 24, 44, 12, 12, 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, 6, 6, 6, 0, 24, 24, 24, 51, 24, 24, 24, 157, 24, 24, 24, 139, 18, 18, 18, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 64, 64, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 64, 64, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 105, 55, 0, 121, 108, 57, 0, 123, 110, 58, 0, 122, 107, 57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 101, 0, 1, 1, 176, 10, 7, 5, 235, 70, 10, 11, 236, 105, 10, 11, 236, 102, 9, 8, 235, 77, 5, 5, 176, 13, 2, 2, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 23, 46, 0, 128, 50, 93, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 141, 77, 20, 0, 141, 153, 20, 0, 141, 153, 21, 3, 140, 153, 141, 137, 167, 173, 141, 137, 167, 173, 141, 137, 167, 173, 141, 137, 167, 173, 141, 137, 167, 173, 141, 137, 167, 173, 141, 137, 167, 173, 141, 137, 167, 173, 61, 46, 149, 160, 20, 0, 141, 153, 18, 0, 137, 86, 5, 0, 35, 0, 0, 0, 0, 0, 199, 176, 20, 51, 207, 185, 28, 179, 209, 188, 30, 179, 209, 188, 30, 179, 209, 188, 30, 179, 209, 188, 30, 179, 209, 188, 30, 179, 209, 188, 30, 179, 209, 188, 30, 179, 209, 188, 30, 179, 204, 182, 25, 179, 190, 160, 6, 67, 45, 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, 11, 11, 11, 0, 13, 13, 13, 0, 23, 23, 23, 20, 13, 13, 13, 0, 7, 7, 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, 12, 12, 12, 0, 13, 13, 13, 0, 13, 13, 13, 0, 7, 7, 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, 11, 11, 11, 0, 11, 11, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29, 29, 29, 0, 83, 83, 83, 5, 117, 117, 117, 59, 117, 117, 117, 92, 117, 117, 117, 95, 116, 116, 116, 63, 85, 85, 85, 7, 50, 50, 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, 60, 36, 34, 0, 255, 114, 163, 65, 255, 101, 187, 180, 191, 76, 140, 11, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 141, 128, 20, 0, 141, 255, 20, 0, 141, 255, 23, 3, 141, 255, 175, 175, 175, 255, 175, 175, 175, 255, 175, 175, 175, 255, 175, 175, 175, 255, 175, 175, 175, 255, 161, 159, 172, 255, 146, 142, 168, 255, 175, 175, 175, 255, 70, 57, 152, 255, 20, 0, 141, 255, 20, 0, 141, 253, 19, 0, 139, 93, 5, 0, 35, 0, 200, 180, 21, 82, 244, 225, 60, 255, 255, 237, 70, 255, 255, 237, 70, 255, 255, 237, 70, 255, 255, 237, 70, 255, 255, 237, 70, 255, 255, 237, 70, 255, 255, 237, 70, 255, 255, 237, 70, 255, 231, 212, 49, 255, 217, 196, 37, 251, 184, 151, 6, 67, 45, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 17, 17, 26, 24, 24, 24, 160, 42, 42, 42, 246, 67, 67, 67, 255, 35, 35, 35, 236, 26, 26, 26, 133, 16, 16, 16, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 11, 11, 0, 24, 24, 24, 63, 25, 25, 25, 158, 27, 27, 27, 197, 27, 27, 27, 192, 20, 20, 20, 141, 18, 18, 18, 34, 6, 6, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 86, 86, 13, 116, 116, 116, 133, 119, 119, 119, 240, 122, 122, 122, 255, 123, 123, 123, 255, 124, 124, 124, 255, 123, 123, 123, 255, 120, 120, 120, 241, 110, 110, 110, 143, 83, 83, 83, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57, 47, 27, 0, 214, 155, 142, 79, 255, 106, 184, 252, 255, 102, 188, 255, 255, 102, 187, 192, 191, 73, 137, 11, 0, 0, 0, 0, 20, 0, 141, 128, 20, 0, 141, 255, 20, 0, 141, 255, 23, 3, 141, 255, 175, 175, 175, 255, 175, 175, 175, 255, 175, 175, 175, 255, 175, 175, 175, 255, 175, 175, 175, 255, 103, 94, 159, 255, 29, 10, 143, 255, 175, 175, 175, 255, 70, 57, 152, 255, 20, 0, 141, 255, 20, 0, 141, 255, 20, 0, 140, 205, 10, 0, 70, 0, 200, 180, 21, 82, 244, 225, 60, 255, 255, 237, 70, 255, 255, 237, 70, 255, 255, 237, 70, 255, 255, 237, 70, 255, 255, 237, 70, 255, 255, 237, 70, 255, 255, 237, 70, 255, 255, 237, 70, 255, 233, 213, 50, 255, 229, 209, 47, 255, 206, 184, 27, 251, 188, 158, 10, 53, 0, 0, 0, 0, 0, 0, 0, 0, 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, 12, 12, 38, 36, 36, 36, 227, 164, 164, 164, 255, 244, 244, 244, 255, 246, 246, 246, 255, 237, 237, 237, 255, 131, 131, 131, 255, 25, 25, 25, 186, 17, 17, 17, 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, 17, 17, 17, 17, 24, 24, 24, 165, 84, 84, 84, 255, 178, 178, 178, 255, 219, 219, 219, 255, 215, 215, 215, 255, 160, 160, 160, 255, 54, 54, 54, 247, 26, 26, 26, 102, 6, 6, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 87, 87, 36, 116, 116, 116, 216, 118, 118, 118, 255, 126, 126, 126, 255, 131, 131, 131, 255, 132, 132, 132, 255, 133, 133, 133, 255, 132, 132, 132, 255, 129, 129, 129, 255, 125, 125, 125, 255, 121, 121, 121, 226, 113, 113, 113, 44, 27, 27, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 47, 26, 0, 255, 196, 98, 58, 224, 188, 119, 243, 222, 130, 179, 255, 255, 102, 188, 255, 255, 102, 188, 255, 255, 100, 186, 183, 191, 12, 23, 0, 20, 0, 141, 128, 20, 0, 141, 255, 20, 0, 141, 255, 23, 3, 141, 255, 175, 175, 175, 255, 175, 175, 175, 255, 175, 175, 175, 255, 175, 175, 175, 255, 175, 175, 175, 255, 103, 94, 159, 255, 29, 10, 143, 255, 175, 175, 175, 255, 70, 57, 152, 255, 20, 0, 141, 255, 20, 0, 141, 255, 20, 0, 140, 205, 10, 0, 70, 0, 200, 180, 21, 82, 244, 225, 60, 255, 255, 237, 70, 255, 255, 237, 70, 255, 255, 237, 70, 255, 255, 237, 70, 255, 255, 237, 70, 255, 255, 237, 70, 255, 255, 237, 70, 255, 255, 237, 70, 255, 254, 236, 69, 255, 249, 231, 65, 255, 243, 224, 60, 255, 202, 180, 23, 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, 17, 17, 17, 8, 30, 30, 30, 215, 192, 192, 192, 255, 246, 246, 246, 255, 246, 246, 246, 255, 246, 246, 246, 255, 246, 246, 246, 255, 246, 246, 246, 255, 141, 141, 141, 255, 26, 26, 26, 175, 13, 13, 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, 12, 12, 12, 0, 13, 13, 13, 0, 13, 13, 13, 0, 6, 6, 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, 19, 19, 19, 36, 35, 35, 35, 226, 154, 154, 154, 255, 245, 245, 245, 255, 246, 246, 246, 255, 246, 246, 246, 255, 246, 246, 246, 255, 246, 246, 246, 255, 232, 232, 232, 255, 78, 78, 78, 254, 26, 26, 26, 97, 3, 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, 5, 5, 5, 0, 12, 12, 12, 0, 5, 5, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 84, 84, 19, 118, 118, 118, 221, 114, 114, 114, 255, 105, 105, 105, 255, 114, 114, 114, 255, 138, 138, 138, 255, 141, 141, 141, 255, 142, 142, 142, 255, 139, 139, 139, 255, 123, 123, 123, 255, 133, 133, 133, 255, 128, 128, 128, 255, 122, 122, 122, 231, 86, 86, 86, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 47, 26, 0, 255, 191, 102, 58, 248, 196, 98, 242, 225, 175, 80, 255, 193, 158, 94, 255, 221, 129, 178, 255, 252, 102, 184, 254, 231, 97, 152, 83, 64, 13, 23, 0, 20, 0, 141, 128, 20, 0, 141, 255, 20, 0, 141, 255, 23, 3, 141, 255, 175, 175, 175, 255, 175, 175, 175, 255, 175, 175, 175, 255, 175, 175, 175, 255, 175, 175, 175, 255, 132, 126, 165, 255, 87, 76, 155, 255, 175, 175, 175, 255, 70, 57, 152, 255, 20, 0, 141, 255, 20, 0, 141, 255, 20, 0, 140, 205, 10, 0, 70, 0, 200, 180, 21, 82, 244, 225, 60, 255, 255, 237, 70, 255, 255, 237, 70, 255, 255, 237, 70, 255, 255, 237, 70, 255, 255, 237, 70, 255, 255, 237, 70, 255, 255, 237, 70, 255, 255, 237, 70, 255, 255, 237, 70, 255, 255, 237, 70, 255, 249, 230, 64, 255, 202, 180, 23, 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, 3, 3, 3, 0, 26, 26, 26, 125, 132, 132, 132, 255, 246, 246, 246, 255, 246, 246, 246, 255, 244, 244, 244, 255, 199, 199, 199, 255, 246, 246, 246, 255, 246, 246, 246, 255, 246, 246, 246, 255, 91, 91, 91, 255, 16, 16, 16, 77, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 0, 12, 12, 12, 38, 25, 25, 25, 165, 30, 30, 30, 226, 29, 29, 29, 220, 25, 25, 25, 100, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 19, 19, 31, 35, 35, 35, 225, 191, 191, 191, 255, 246, 246, 246, 255, 246, 246, 246, 255, 246, 246, 246, 255, 246, 246, 246, 255, 246, 246, 246, 255, 246, 246, 246, 255, 246, 246, 246, 255, 232, 232, 232, 255, 49, 49, 49, 243, 13, 13, 13, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 6, 6, 0, 23, 23, 23, 96, 26, 26, 26, 168, 24, 24, 24, 115, 9, 9, 9, 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, 77, 77, 77, 17, 75, 75, 75, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 49, 49, 0, 112, 112, 112, 153, 123, 123, 123, 255, 126, 126, 126, 255, 105, 105, 105, 255, 105, 105, 105, 255, 127, 127, 127, 255, 150, 150, 150, 255, 141, 141, 141, 255, 111, 111, 111, 255, 105, 105, 105, 255, 132, 132, 132, 255, 134, 134, 134, 255, 127, 127, 127, 255, 118, 118, 118, 170, 56, 56, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 48, 24, 0, 255, 192, 99, 58, 248, 196, 98, 242, 225, 175, 80, 255, 201, 153, 61, 255, 177, 130, 42, 255, 159, 127, 69, 249, 181, 120, 123, 98, 48, 25, 28, 0, 0, 0, 0, 0, 20, 0, 141, 128, 20, 0, 141, 255, 20, 0, 141, 255, 23, 3, 141, 255, 175, 175, 175, 255, 175, 175, 175, 255, 175, 175, 175, 255, 175, 175, 175, 255, 175, 175, 175, 255, 175, 175, 175, 255, 175, 175, 175, 255, 175, 175, 175, 255, 70, 57, 152, 255, 20, 0, 141, 255, 20, 0, 141, 255, 20, 0, 140, 205, 10, 0, 70, 0, 200, 180, 21, 82, 244, 225, 60, 255, 255, 237, 70, 255, 255, 237, 70, 255, 255, 237, 70, 255, 255, 237, 70, 255, 255, 237, 70, 255, 255, 237, 70, 255, 255, 237, 70, 255, 255, 237, 70, 255, 255, 237, 70, 255, 255, 237, 70, 255, 249, 230, 64, 255, 202, 180, 23, 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, 10, 10, 10, 26, 51, 51, 51, 245, 236, 236, 236, 255, 246, 246, 246, 255, 246, 246, 246, 255, 111, 111, 111, 255, 26, 26, 26, 226, 143, 143, 143, 255, 246, 246, 246, 255, 246, 246, 246, 255, 212, 212, 212, 255, 31, 31, 31, 217, 18, 18, 18, 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, 5, 5, 5, 0, 22, 22, 22, 75, 46, 46, 46, 240, 175, 175, 175, 255, 244, 244, 244, 255, 230, 230, 230, 255, 66, 66, 66, 254, 26, 26, 26, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 16, 16, 10, 29, 29, 29, 211, 184, 184, 184, 255, 246, 246, 246, 255, 246, 246, 246, 255, 244, 244, 244, 255, 142, 142, 142, 255, 43, 43, 43, 244, 50, 50, 50, 247, 208, 208, 208, 255, 246, 246, 246, 255, 246, 246, 246, 255, 179, 179, 179, 255, 25, 25, 25, 184, 12, 12, 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, 6, 6, 6, 0, 26, 26, 26, 126, 90, 90, 90, 254, 191, 191, 191, 255, 111, 111, 111, 255, 19, 19, 19, 138, 6, 6, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 105, 105, 43, 103, 103, 103, 194, 75, 75, 75, 12, 0, 0, 0, 0, 0, 0, 0, 0, 100, 100, 100, 18, 120, 120, 120, 250, 128, 128, 128, 255, 111, 111, 111, 255, 105, 105, 105, 255, 111, 111, 111, 255, 150, 150, 150, 255, 159, 159, 159, 255, 137, 137, 137, 255, 105, 105, 105, 255, 105, 105, 105, 255, 109, 109, 109, 255, 117, 117, 117, 255, 119, 119, 119, 255, 120, 120, 120, 254, 113, 113, 113, 34, 64, 0, 0, 0, 255, 3, 3, 18, 255, 5, 5, 26, 255, 5, 5, 26, 255, 5, 5, 26, 255, 5, 5, 26, 255, 5, 5, 26, 255, 7, 7, 20, 128, 4, 4, 0, 128, 5, 5, 0, 128, 5, 5, 0, 128, 5, 5, 0, 128, 5, 5, 0, 128, 5, 5, 0, 64, 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, 64, 48, 24, 0, 255, 194, 97, 58, 248, 196, 98, 242, 225, 175, 80, 255, 201, 153, 61, 255, 177, 130, 42, 255, 153, 107, 23, 248, 127, 88, 3, 73, 33, 27, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 141, 128, 20, 0, 141, 255, 20, 0, 141, 255, 20, 0, 141, 255, 20, 0, 141, 255, 20, 0, 141, 255, 20, 0, 141, 255, 20, 0, 141, 255, 20, 0, 141, 255, 20, 0, 141, 255, 20, 0, 141, 255, 20, 0, 141, 255, 20, 0, 141, 255, 20, 0, 141, 255, 20, 0, 141, 255, 20, 0, 140, 205, 10, 0, 70, 0, 200, 180, 21, 82, 244, 225, 60, 255, 255, 237, 70, 255, 255, 237, 70, 255, 255, 237, 70, 255, 255, 237, 70, 255, 255, 237, 70, 255, 255, 237, 70, 255, 255, 237, 70, 255, 255, 237, 70, 255, 255, 237, 70, 255, 255, 237, 70, 255, 249, 230, 64, 255, 202, 180, 23, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 0, 19, 19, 19, 140, 154, 154, 154, 255, 246, 246, 246, 255, 246, 246, 246, 255, 193, 193, 193, 255, 27, 27, 27, 190, 15, 15, 15, 9, 32, 32, 32, 220, 216, 216, 216, 255, 246, 246, 246, 255, 246, 246, 246, 255, 123, 123, 123, 255, 24, 24, 24, 113, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 22, 22, 43, 54, 54, 54, 247, 221, 221, 221, 255, 246, 246, 246, 255, 246, 246, 246, 255, 246, 246, 246, 255, 124, 124, 124, 255, 26, 26, 26, 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 6, 6, 0, 20, 20, 20, 156, 141, 141, 141, 255, 246, 246, 246, 255, 246, 246, 246, 255, 242, 242, 242, 255, 95, 95, 95, 254, 20, 20, 20, 155, 15, 15, 15, 11, 25, 25, 25, 56, 63, 63, 63, 251, 242, 242, 242, 255, 246, 246, 246, 255, 246, 246, 246, 255, 86, 86, 86, 255, 24, 24, 24, 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, 6, 6, 6, 0, 24, 24, 24, 83, 74, 74, 74, 253, 240, 240, 240, 255, 246, 246, 246, 255, 234, 234, 234, 255, 26, 26, 26, 214, 13, 13, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52, 52, 52, 0, 53, 53, 53, 0, 53, 53, 53, 0, 53, 53, 53, 0, 53, 53, 53, 0, 53, 53, 53, 0, 53, 53, 53, 0, 53, 53, 53, 0, 53, 53, 53, 0, 53, 53, 53, 0, 105, 105, 105, 43, 105, 105, 105, 255, 103, 103, 103, 193, 76, 76, 76, 11, 0, 0, 0, 0, 117, 117, 117, 88, 123, 123, 123, 255, 125, 125, 125, 255, 105, 105, 105, 255, 110, 110, 110, 255, 149, 149, 149, 255, 162, 162, 162, 255, 167, 167, 167, 255, 161, 161, 161, 255, 105, 105, 105, 255, 105, 105, 105, 255, 105, 105, 105, 255, 105, 105, 105, 255, 105, 105, 105, 255, 116, 116, 116, 255, 118, 118, 118, 105, 128, 4, 4, 0, 255, 8, 8, 180, 255, 9, 9, 255, 255, 9, 9, 255, 255, 9, 9, 255, 255, 9, 9, 255, 255, 9, 9, 255, 255, 9, 9, 255, 255, 9, 9, 255, 255, 9, 9, 255, 255, 9, 9, 255, 255, 9, 9, 255, 255, 9, 9, 255, 255, 9, 9, 255, 255, 8, 8, 85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 48, 24, 0, 255, 194, 97, 59, 248, 196, 97, 242, 225, 175, 80, 255, 201, 152, 61, 255, 177, 130, 42, 255, 153, 107, 23, 248, 127, 88, 3, 73, 31, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 141, 128, 20, 0, 141, 255, 64, 50, 150, 255, 111, 103, 161, 255, 113, 105, 161, 255, 113, 105, 161, 255, 113, 105, 161, 255, 113, 105, 161, 255, 113, 105, 161, 255, 113, 105, 161, 255, 113, 105, 161, 255, 113, 105, 161, 255, 113, 105, 161, 255, 89, 78, 156, 255, 22, 2, 141, 255, 20, 0, 140, 205, 10, 0, 70, 0, 200, 180, 21, 82, 244, 225, 60, 255, 255, 237, 70, 255, 255, 237, 70, 255, 255, 237, 70, 255, 255, 237, 70, 255, 255, 237, 70, 255, 255, 237, 70, 255, 255, 237, 70, 255, 255, 237, 70, 255, 255, 237, 70, 255, 255, 237, 70, 255, 249, 230, 64, 255, 202, 180, 23, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 21, 47, 47, 47, 242, 239, 239, 239, 255, 246, 246, 246, 255, 246, 246, 246, 255, 79, 79, 79, 255, 23, 23, 23, 56, 6, 6, 6, 0, 26, 26, 26, 84, 98, 98, 98, 255, 246, 246, 246, 255, 246, 246, 246, 255, 232, 232, 232, 255, 43, 43, 43, 239, 15, 15, 15, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 7, 28, 28, 28, 207, 193, 193, 193, 255, 246, 246, 246, 255, 246, 246, 246, 255, 238, 238, 238, 255, 174, 174, 174, 255, 45, 45, 45, 240, 12, 12, 12, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15, 15, 71, 81, 81, 81, 255, 244, 244, 244, 255, 246, 246, 246, 255, 246, 246, 246, 255, 110, 110, 110, 255, 20, 20, 20, 142, 6, 6, 6, 0, 0, 0, 0, 0, 6, 6, 6, 0, 20, 20, 20, 148, 152, 152, 152, 255, 246, 246, 246, 255, 246, 246, 246, 255, 199, 199, 199, 255, 27, 27, 27, 199, 3, 3, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 25, 25, 46, 50, 50, 50, 244, 224, 224, 224, 255, 246, 246, 246, 255, 246, 246, 246, 255, 174, 174, 174, 255, 25, 25, 25, 168, 12, 12, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52, 52, 52, 0, 105, 105, 105, 214, 105, 105, 105, 230, 105, 105, 105, 230, 105, 105, 105, 230, 105, 105, 105, 230, 105, 105, 105, 230, 105, 105, 105, 230, 105, 105, 105, 230, 105, 105, 105, 230, 105, 105, 105, 230, 105, 105, 105, 234, 105, 105, 105, 255, 105, 105, 105, 255, 104, 104, 104, 192, 77, 77, 77, 11, 111, 111, 111, 122, 124, 124, 124, 255, 130, 130, 130, 255, 105, 105, 105, 255, 135, 135, 135, 255, 159, 159, 159, 255, 167, 167, 167, 255, 174, 174, 174, 255, 177, 177, 177, 255, 159, 159, 159, 255, 150, 150, 150, 255, 134, 134, 134, 255, 107, 107, 107, 255, 105, 105, 105, 255, 125, 125, 125, 255, 116, 116, 116, 137, 128, 4, 4, 0, 255, 8, 8, 178, 255, 9, 9, 255, 255, 9, 9, 255, 255, 9, 9, 255, 255, 9, 9, 255, 255, 9, 9, 255, 255, 9, 9, 255, 255, 9, 9, 255, 255, 9, 9, 255, 255, 9, 9, 255, 255, 9, 9, 255, 255, 9, 9, 255, 255, 9, 9, 255, 255, 9, 9, 85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 48, 24, 0, 255, 194, 97, 59, 248, 195, 98, 242, 225, 175, 80, 255, 201, 152, 61, 255, 177, 129, 42, 255, 153, 107, 23, 248, 129, 85, 3, 73, 31, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 141, 128, 28, 9, 142, 255, 171, 171, 174, 255, 175, 175, 175, 255, 175, 175, 175, 255, 175, 175, 175, 255, 175, 175, 175, 255, 175, 175, 175, 255, 175, 175, 175, 255, 175, 175, 175, 255, 175, 175, 175, 255, 175, 175, 175, 255, 175, 175, 175, 255, 175, 175, 175, 255, 71, 58, 152, 255, 20, 0, 140, 205, 10, 0, 70, 0, 200, 180, 21, 82, 244, 225, 60, 255, 255, 237, 70, 255, 255, 237, 70, 255, 255, 237, 70, 255, 255, 237, 70, 255, 255, 237, 70, 255, 255, 237, 70, 255, 255, 237, 70, 255, 255, 237, 70, 255, 255, 237, 70, 255, 255, 237, 70, 255, 249, 230, 64, 255, 202, 180, 23, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 0, 20, 20, 20, 140, 151, 151, 151, 255, 246, 246, 246, 255, 246, 246, 246, 255, 183, 183, 183, 255, 26, 26, 26, 178, 12, 12, 12, 0, 0, 0, 0, 0, 3, 3, 3, 1, 26, 26, 26, 195, 194, 194, 194, 255, 246, 246, 246, 255, 246, 246, 246, 255, 150, 150, 150, 255, 19, 19, 19, 144, 6, 6, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 6, 6, 0, 20, 20, 20, 142, 131, 131, 131, 255, 246, 246, 246, 255, 246, 246, 246, 255, 232, 232, 232, 255, 60, 60, 60, 249, 23, 23, 23, 155, 24, 24, 24, 47, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 16, 16, 6, 30, 30, 30, 216, 209, 209, 209, 255, 246, 246, 246, 255, 246, 246, 246, 255, 160, 160, 160, 255, 25, 25, 25, 177, 2, 2, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15, 15, 19, 42, 42, 42, 237, 230, 230, 230, 255, 246, 246, 246, 255, 246, 246, 246, 255, 103, 103, 103, 255, 22, 22, 22, 91, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 0, 13, 13, 13, 35, 33, 33, 33, 222, 200, 200, 200, 255, 246, 246, 246, 255, 246, 246, 246, 255, 212, 212, 212, 255, 40, 40, 40, 233, 18, 18, 18, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52, 52, 52, 0, 105, 105, 105, 238, 105, 105, 105, 255, 105, 105, 105, 255, 105, 105, 105, 255, 105, 105, 105, 255, 105, 105, 105, 255, 105, 105, 105, 255, 105, 105, 105, 255, 105, 105, 105, 255, 105, 105, 105, 255, 105, 105, 105, 255, 105, 105, 105, 255, 105, 105, 105, 255, 105, 105, 105, 255, 93, 93, 93, 111, 108, 108, 108, 120, 125, 125, 125, 255, 133, 133, 133, 255, 111, 111, 111, 255, 113, 113, 113, 255, 158, 158, 158, 255, 168, 168, 168, 255, 176, 176, 176, 255, 154, 154, 154, 255, 128, 128, 128, 255, 131, 131, 131, 255, 133, 133, 133, 255, 141, 141, 141, 255, 117, 117, 117, 255, 130, 130, 130, 255, 116, 116, 116, 139, 64, 2, 2, 0, 255, 8, 8, 89, 255, 9, 9, 128, 255, 9, 9, 128, 255, 9, 9, 128, 255, 9, 9, 128, 255, 8, 8, 137, 255, 7, 7, 153, 255, 7, 7, 153, 255, 7, 7, 153, 255, 7, 7, 153, 255, 7, 7, 153, 255, 7, 7, 153, 255, 7, 7, 153, 255, 8, 8, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 48, 24, 0, 255, 194, 97, 59, 247, 195, 98, 242, 225, 175, 80, 255, 201, 152, 61, 255, 177, 129, 42, 255, 153, 107, 23, 248, 130, 83, 3, 72, 32, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 141, 128, 36, 19, 144, 255, 175, 175, 175, 255, 175, 175, 175, 255, 175, 175, 175, 255, 175, 175, 175, 255, 175, 175, 175, 255, 175, 175, 175, 255, 175, 175, 175, 255, 175, 175, 175, 255, 175, 175, 175, 255, 175, 175, 175, 255, 175, 175, 175, 255, 175, 175, 175, 255, 84, 72, 155, 255, 20, 0, 140, 205, 10, 0, 70, 0, 200, 180, 21, 82, 244, 225, 60, 255, 255, 237, 70, 255, 255, 237, 70, 255, 255, 237, 70, 255, 255, 237, 70, 255, 255, 237, 70, 255, 255, 237, 70, 255, 255, 237, 70, 255, 255, 237, 70, 255, 255, 237, 70, 255, 255, 237, 70, 255, 249, 230, 64, 255, 202, 180, 23, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 26, 51, 51, 51, 246, 240, 240, 240, 255, 246, 246, 246, 255, 246, 246, 246, 255, 73, 73, 73, 254, 25, 25, 25, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 23, 23, 53, 71, 71, 71, 254, 245, 245, 245, 255, 246, 246, 246, 255, 241, 241, 241, 255, 65, 65, 65, 252, 15, 15, 15, 58, 0, 0, 0, 0, 6, 6, 6, 0, 24, 24, 24, 86, 79, 79, 79, 254, 242, 242, 242, 255, 246, 246, 246, 255, 246, 246, 246, 255, 104, 104, 104, 255, 26, 26, 26, 106, 10, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 0, 24, 24, 24, 118, 125, 125, 125, 255, 246, 246, 246, 255, 246, 246, 246, 255, 222, 222, 222, 255, 35, 35, 35, 228, 17, 17, 17, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 6, 6, 0, 26, 26, 26, 111, 124, 124, 124, 255, 246, 246, 246, 255, 246, 246, 246, 255, 220, 220, 220, 255, 34, 34, 34, 226, 19, 19, 19, 10, 0, 0, 0, 0, 6, 6, 6, 0, 23, 23, 23, 63, 41, 41, 41, 236, 189, 189, 189, 255, 246, 246, 246, 255, 246, 246, 246, 255, 233, 233, 233, 255, 60, 60, 60, 250, 25, 25, 25, 62, 6, 6, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52, 52, 52, 0, 105, 105, 105, 166, 105, 105, 105, 179, 105, 105, 105, 179, 105, 105, 105, 179, 105, 105, 105, 179, 105, 105, 105, 179, 105, 105, 105, 179, 105, 105, 105, 179, 105, 105, 105, 179, 105, 105, 105, 179, 105, 105, 105, 191, 105, 105, 105, 255, 105, 105, 105, 255, 104, 104, 104, 151, 72, 72, 72, 1, 117, 117, 117, 87, 124, 124, 124, 255, 132, 132, 132, 255, 118, 118, 118, 255, 105, 105, 105, 255, 138, 138, 138, 255, 165, 165, 165, 255, 169, 169, 169, 255, 113, 113, 113, 255, 105, 105, 105, 255, 105, 105, 105, 255, 113, 113, 113, 255, 146, 146, 146, 255, 137, 137, 137, 255, 129, 129, 129, 255, 119, 119, 119, 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, 64, 2, 2, 0, 128, 3, 3, 0, 128, 3, 3, 0, 128, 3, 3, 0, 128, 3, 3, 0, 128, 3, 3, 0, 128, 3, 3, 0, 128, 3, 3, 0, 64, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 48, 32, 0, 255, 194, 109, 58, 247, 196, 98, 242, 225, 174, 80, 255, 201, 152, 61, 255, 177, 129, 42, 255, 153, 107, 23, 248, 130, 83, 3, 72, 32, 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, 20, 0, 141, 128, 36, 19, 144, 255, 175, 175, 175, 255, 175, 175, 175, 255, 175, 175, 175, 255, 175, 175, 175, 255, 175, 175, 175, 255, 175, 175, 175, 255, 175, 175, 175, 255, 175, 175, 175, 255, 175, 175, 175, 255, 175, 175, 175, 255, 175, 175, 175, 255, 175, 175, 175, 255, 84, 72, 155, 255, 20, 0, 140, 205, 10, 0, 70, 0, 200, 180, 21, 82, 244, 225, 60, 255, 255, 237, 70, 255, 255, 237, 70, 255, 255, 237, 70, 255, 255, 237, 70, 255, 255, 237, 70, 255, 255, 237, 70, 255, 255, 237, 70, 255, 255, 237, 70, 255, 255, 237, 70, 255, 255, 237, 70, 255, 249, 230, 64, 255, 202, 180, 23, 108, 0, 0, 0, 0, 0, 0, 0, 0, 6, 6, 6, 0, 19, 19, 19, 32, 20, 20, 20, 169, 159, 159, 159, 255, 246, 246, 246, 255, 246, 246, 246, 255, 189, 189, 189, 255, 26, 26, 26, 180, 12, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 0, 26, 26, 26, 166, 169, 169, 169, 255, 246, 246, 246, 255, 246, 246, 246, 255, 206, 206, 206, 255, 37, 37, 37, 230, 16, 16, 16, 75, 24, 24, 24, 101, 50, 50, 50, 244, 226, 226, 226, 255, 246, 246, 246, 255, 246, 246, 246, 255, 172, 172, 172, 255, 26, 26, 26, 185, 3, 3, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 9, 23, 47, 47, 47, 242, 234, 234, 234, 255, 246, 246, 246, 255, 246, 246, 246, 255, 108, 108, 108, 255, 25, 25, 25, 96, 6, 6, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15, 15, 7, 34, 34, 34, 226, 223, 223, 223, 255, 246, 246, 246, 255, 246, 246, 246, 255, 135, 135, 135, 255, 26, 26, 26, 146, 19, 19, 19, 18, 25, 25, 25, 129, 60, 60, 60, 250, 214, 214, 214, 255, 246, 246, 246, 255, 246, 246, 246, 255, 244, 244, 244, 255, 89, 89, 89, 254, 25, 25, 25, 103, 6, 6, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52, 52, 52, 0, 53, 53, 53, 0, 53, 53, 53, 0, 53, 53, 53, 0, 53, 53, 53, 0, 53, 53, 53, 0, 53, 53, 53, 0, 53, 53, 53, 0, 53, 53, 53, 0, 53, 53, 53, 0, 105, 105, 105, 43, 105, 105, 105, 255, 104, 104, 104, 152, 77, 77, 77, 1, 0, 0, 0, 0, 113, 113, 113, 19, 121, 121, 121, 249, 130, 130, 130, 255, 118, 118, 118, 255, 111, 111, 111, 255, 150, 150, 150, 255, 158, 158, 158, 255, 158, 158, 158, 255, 108, 108, 108, 255, 105, 105, 105, 255, 105, 105, 105, 255, 124, 124, 124, 255, 142, 142, 142, 255, 134, 134, 134, 255, 126, 126, 126, 254, 112, 112, 112, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 111, 83, 0, 255, 222, 164, 193, 230, 184, 97, 238, 200, 152, 60, 255, 177, 129, 42, 255, 152, 107, 23, 248, 127, 85, 3, 72, 31, 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, 0, 0, 0, 20, 0, 141, 128, 36, 19, 144, 255, 175, 175, 175, 255, 175, 175, 175, 255, 175, 175, 175, 255, 175, 175, 175, 255, 175, 175, 175, 255, 175, 175, 175, 255, 175, 175, 175, 255, 175, 175, 175, 255, 175, 175, 175, 255, 175, 175, 175, 255, 175, 175, 175, 255, 175, 175, 175, 255, 84, 72, 155, 255, 20, 0, 140, 205, 10, 0, 70, 0, 200, 180, 21, 82, 244, 225, 60, 255, 255, 237, 70, 255, 255, 237, 70, 255, 255, 237, 70, 255, 255, 237, 70, 255, 255, 237, 70, 255, 255, 237, 70, 255, 255, 237, 70, 255, 255, 237, 70, 255, 255, 237, 70, 255, 255, 237, 70, 255, 249, 230, 64, 255, 202, 180, 23, 108, 0, 0, 0, 0, 3, 3, 3, 0, 26, 26, 26, 124, 62, 62, 62, 252, 135, 135, 135, 255, 245, 245, 245, 255, 246, 246, 246, 255, 244, 244, 244, 255, 69, 69, 69, 253, 24, 24, 24, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 13, 13, 30, 45, 45, 45, 240, 225, 225, 225, 255, 246, 246, 246, 255, 246, 246, 246, 255, 203, 203, 203, 255, 107, 107, 107, 255, 124, 124, 124, 255, 223, 223, 223, 255, 246, 246, 246, 255, 246, 246, 246, 255, 223, 223, 223, 255, 43, 43, 43, 237, 20, 20, 20, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 0, 20, 20, 20, 139, 152, 152, 152, 255, 246, 246, 246, 255, 246, 246, 246, 255, 204, 204, 204, 255, 28, 28, 28, 206, 3, 3, 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, 5, 0, 24, 24, 24, 95, 101, 101, 101, 255, 246, 246, 246, 255, 246, 246, 246, 255, 242, 242, 242, 255, 106, 106, 106, 255, 54, 54, 54, 253, 142, 142, 142, 255, 235, 235, 235, 255, 246, 246, 246, 255, 246, 246, 246, 255, 245, 245, 245, 255, 112, 112, 112, 255, 19, 19, 19, 147, 6, 6, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 105, 105, 43, 100, 100, 100, 153, 74, 74, 74, 1, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 55, 0, 116, 116, 116, 149, 126, 126, 126, 255, 116, 116, 116, 255, 132, 132, 132, 255, 146, 146, 146, 255, 151, 151, 151, 255, 154, 154, 154, 255, 130, 130, 130, 255, 105, 105, 105, 255, 111, 111, 111, 255, 141, 141, 141, 255, 137, 137, 137, 255, 130, 130, 130, 255, 119, 119, 119, 167, 55, 55, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 220, 164, 52, 255, 224, 167, 255, 253, 221, 162, 240, 192, 148, 67, 238, 152, 107, 23, 248, 127, 85, 3, 72, 31, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 141, 128, 36, 19, 144, 255, 175, 175, 175, 255, 175, 175, 175, 255, 175, 175, 175, 255, 175, 175, 175, 255, 175, 175, 175, 255, 175, 175, 175, 255, 175, 175, 175, 255, 175, 175, 175, 255, 175, 175, 175, 255, 175, 175, 175, 255, 175, 175, 175, 255, 175, 175, 175, 255, 84, 72, 155, 255, 20, 0, 140, 205, 10, 0, 70, 0, 200, 180, 21, 82, 244, 225, 60, 255, 255, 237, 70, 255, 255, 237, 70, 255, 255, 237, 70, 255, 255, 237, 70, 255, 255, 237, 70, 255, 255, 237, 70, 255, 255, 237, 70, 255, 255, 237, 70, 255, 255, 237, 70, 255, 255, 237, 70, 255, 249, 230, 64, 255, 202, 180, 23, 108, 0, 0, 0, 0, 13, 13, 13, 19, 57, 57, 57, 251, 240, 240, 240, 255, 246, 246, 246, 255, 246, 246, 246, 255, 246, 246, 246, 255, 152, 152, 152, 255, 26, 26, 26, 155, 12, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 0, 26, 26, 26, 89, 86, 86, 86, 254, 241, 241, 241, 255, 246, 246, 246, 255, 246, 246, 246, 255, 246, 246, 246, 255, 246, 246, 246, 255, 246, 246, 246, 255, 246, 246, 246, 255, 232, 232, 232, 255, 67, 67, 67, 252, 23, 23, 23, 79, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 0, 37, 37, 37, 235, 239, 239, 239, 255, 246, 246, 246, 255, 246, 246, 246, 255, 84, 84, 84, 255, 16, 16, 16, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 1, 26, 26, 26, 186, 175, 175, 175, 255, 246, 246, 246, 255, 246, 246, 246, 255, 246, 246, 246, 255, 246, 246, 246, 255, 246, 246, 246, 255, 246, 246, 246, 255, 246, 246, 246, 255, 241, 241, 241, 255, 110, 110, 110, 255, 20, 20, 20, 158, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 75, 75, 8, 64, 64, 64, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 86, 86, 16, 120, 120, 120, 219, 124, 124, 124, 255, 134, 134, 134, 255, 139, 139, 139, 255, 143, 143, 143, 255, 145, 145, 145, 255, 144, 144, 144, 255, 108, 108, 108, 255, 132, 132, 132, 255, 137, 137, 137, 255, 131, 131, 131, 255, 125, 125, 125, 227, 88, 88, 88, 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, 0, 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, 93, 70, 0, 239, 205, 154, 155, 255, 224, 167, 255, 255, 224, 167, 255, 250, 218, 160, 192, 158, 107, 38, 68, 31, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 141, 128, 35, 17, 144, 255, 175, 175, 175, 255, 175, 175, 175, 255, 175, 175, 175, 255, 175, 175, 175, 255, 175, 175, 175, 255, 175, 175, 175, 255, 175, 175, 175, 255, 175, 175, 175, 255, 175, 175, 175, 255, 175, 175, 175, 255, 175, 175, 175, 255, 175, 175, 175, 255, 82, 70, 154, 255, 20, 0, 140, 205, 10, 0, 70, 0, 200, 180, 21, 82, 244, 225, 60, 255, 255, 237, 70, 255, 255, 237, 70, 255, 255, 237, 70, 255, 255, 237, 70, 255, 255, 237, 70, 255, 255, 237, 70, 255, 255, 237, 70, 255, 255, 237, 70, 255, 255, 237, 70, 255, 255, 237, 70, 255, 249, 230, 64, 255, 202, 180, 23, 108, 0, 0, 0, 0, 24, 24, 24, 26, 66, 66, 66, 254, 246, 246, 246, 255, 246, 246, 246, 255, 246, 246, 246, 255, 177, 177, 177, 255, 31, 31, 31, 217, 19, 19, 19, 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, 0, 0, 0, 6, 6, 6, 0, 26, 26, 26, 134, 86, 86, 86, 254, 227, 227, 227, 255, 246, 246, 246, 255, 246, 246, 246, 255, 246, 246, 246, 255, 246, 246, 246, 255, 196, 196, 196, 255, 64, 64, 64, 252, 26, 26, 26, 99, 6, 6, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 5, 42, 42, 42, 243, 241, 241, 241, 255, 246, 246, 246, 255, 175, 175, 175, 255, 26, 26, 26, 180, 13, 13, 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, 19, 19, 19, 29, 37, 37, 37, 228, 188, 188, 188, 255, 246, 246, 246, 255, 246, 246, 246, 255, 246, 246, 246, 255, 246, 246, 246, 255, 246, 246, 246, 255, 219, 219, 219, 255, 78, 78, 78, 254, 26, 26, 26, 135, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 88, 88, 33, 120, 120, 120, 214, 127, 127, 127, 255, 131, 131, 131, 255, 135, 135, 135, 255, 137, 137, 137, 255, 137, 137, 137, 255, 131, 131, 131, 255, 133, 133, 133, 255, 129, 129, 129, 255, 124, 124, 124, 221, 60, 60, 60, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 79, 62, 18, 85, 78, 65, 246, 242, 210, 153, 151, 255, 221, 163, 50, 128, 111, 83, 0, 50, 37, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 141, 128, 21, 1, 141, 255, 135, 131, 166, 255, 175, 175, 175, 255, 175, 175, 175, 255, 175, 175, 175, 255, 175, 175, 175, 255, 175, 175, 175, 255, 175, 175, 175, 255, 175, 175, 175, 255, 175, 175, 175, 255, 175, 175, 175, 255, 175, 175, 175, 255, 162, 160, 172, 255, 41, 24, 146, 255, 20, 0, 140, 205, 10, 0, 70, 0, 200, 180, 21, 82, 244, 225, 60, 255, 255, 237, 70, 255, 255, 237, 70, 255, 255, 237, 70, 255, 255, 237, 70, 255, 255, 237, 70, 255, 255, 237, 70, 255, 255, 237, 70, 255, 255, 237, 70, 255, 255, 237, 70, 255, 255, 237, 70, 255, 249, 230, 64, 255, 202, 180, 23, 108, 0, 0, 0, 0, 10, 10, 10, 0, 24, 24, 24, 161, 95, 95, 95, 255, 137, 137, 137, 255, 86, 86, 86, 255, 26, 26, 26, 195, 19, 19, 19, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 6, 6, 0, 26, 26, 26, 93, 37, 37, 37, 233, 110, 110, 110, 255, 148, 148, 148, 255, 140, 140, 140, 255, 88, 88, 88, 255, 27, 27, 27, 203, 26, 26, 26, 51, 6, 6, 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, 7, 7, 7, 0, 20, 20, 20, 127, 77, 77, 77, 255, 124, 124, 124, 255, 39, 39, 39, 234, 19, 19, 19, 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, 13, 13, 13, 37, 29, 29, 29, 209, 114, 114, 114, 255, 189, 189, 189, 255, 212, 212, 212, 255, 188, 188, 188, 255, 117, 117, 117, 255, 31, 31, 31, 221, 21, 21, 21, 83, 6, 6, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 86, 86, 11, 119, 119, 119, 128, 122, 122, 122, 235, 126, 126, 126, 255, 128, 128, 128, 255, 128, 128, 128, 255, 127, 127, 127, 255, 125, 125, 125, 241, 121, 121, 121, 136, 89, 89, 89, 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, 99, 87, 70, 20, 95, 81, 64, 13, 114, 99, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 141, 102, 20, 0, 141, 204, 20, 0, 141, 204, 32, 14, 143, 204, 36, 18, 144, 204, 36, 18, 144, 204, 36, 18, 144, 204, 36, 18, 144, 204, 36, 18, 144, 204, 36, 18, 144, 204, 36, 18, 144, 204, 36, 18, 144, 204, 36, 18, 144, 204, 21, 2, 141, 204, 20, 0, 141, 204, 20, 0, 140, 164, 10, 0, 70, 0, 198, 177, 21, 47, 205, 184, 27, 170, 207, 186, 29, 168, 207, 186, 29, 168, 207, 186, 29, 168, 207, 186, 29, 168, 207, 186, 29, 168, 207, 186, 29, 168, 207, 186, 29, 168, 207, 186, 29, 168, 207, 186, 29, 168, 207, 186, 29, 168, 206, 185, 28, 169, 199, 176, 20, 63, 0, 0, 0, 0, 0, 0, 0, 0, 16, 16, 16, 3, 26, 26, 26, 72, 26, 26, 26, 93, 26, 26, 26, 51, 12, 12, 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, 6, 6, 6, 0, 17, 17, 17, 6, 26, 26, 26, 75, 26, 26, 26, 113, 26, 26, 26, 103, 25, 25, 25, 52, 13, 13, 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, 6, 6, 6, 0, 26, 26, 26, 59, 26, 26, 26, 92, 19, 19, 19, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 5, 16, 16, 16, 91, 26, 26, 26, 164, 26, 26, 26, 183, 26, 26, 26, 164, 26, 26, 26, 94, 19, 19, 19, 5, 4, 4, 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, 68, 17, 43, 0, 68, 17, 43, 0, 68, 17, 43, 0, 68, 17, 43, 0, 68, 17, 43, 0, 68, 17, 43, 0, 68, 17, 43, 0, 68, 17, 43, 0, 68, 17, 43, 0, 68, 17, 43, 0, 68, 17, 43, 0, 68, 17, 43, 0, 68, 17, 43, 0, 68, 17, 43, 0, 68, 17, 43, 0, 68, 17, 43, 0, 68, 17, 43, 0, 68, 17, 43, 0, 68, 17, 43, 0, 68, 17, 43, 0, 68, 17, 43, 0, 68, 17, 43, 0, 68, 17, 43, 0, 68, 17, 43, 0, 68, 17, 43, 0, 68, 17, 43, 0, 68, 17, 43, 0, 68, 17, 43, 0, 68, 17, 43, 0, 68, 17, 43, 0, 68, 17, 43, 0, 68, 17, 42, 0, 111, 102, 60, 0, 111, 102, 60, 0, 111, 102, 60, 0, 111, 102, 60, 0, 111, 102, 60, 0, 111, 102, 60, 0, 111, 102, 60, 0, 111, 102, 60, 0, 111, 102, 60, 0, 111, 102, 60, 0, 111, 102, 60, 0, 111, 102, 60, 0, 111, 102, 60, 0, 111, 102, 60, 0, 111, 102, 60, 0, 111, 102, 60, 0, 111, 102, 60, 0, 111, 102, 60, 0, 111, 102, 60, 0, 111, 102, 60, 0, 111, 102, 60, 0, 111, 102, 60, 0, 111, 102, 60, 0, 111, 102, 60, 0, 111, 102, 60, 0, 111, 102, 60, 0, 111, 102, 60, 0, 111, 102, 60, 0, 111, 102, 60, 0, 111, 102, 60, 0, 111, 102, 60, 0, 111, 102, 60, 0, 26, 17, 68, 0, 26, 17, 68, 0, 26, 17, 68, 0, 26, 17, 68, 0, 26, 17, 68, 0, 26, 17, 68, 0, 26, 17, 68, 0, 26, 17, 68, 0, 26, 17, 68, 0, 26, 17, 68, 0, 26, 17, 68, 0, 26, 17, 68, 0, 26, 17, 68, 0, 26, 17, 68, 0, 26, 17, 68, 0, 26, 17, 68, 0, 26, 17, 68, 0, 26, 17, 68, 0, 26, 17, 68, 0, 26, 17, 68, 0, 26, 17, 68, 0, 26, 17, 68, 0, 26, 17, 68, 0, 26, 17, 68, 0, 26, 17, 68, 0, 26, 17, 68, 0, 26, 17, 68, 0, 26, 17, 68, 0, 26, 17, 68, 0, 26, 17, 68, 0, 26, 17, 68, 0, 26, 17, 68, 0, 85, 34, 77, 0, 85, 34, 77, 0, 85, 34, 77, 0, 85, 34, 77, 0, 85, 34, 77, 0, 85, 34, 77, 0, 85, 34, 77, 0, 85, 34, 77, 0, 85, 34, 77, 0, 85, 34, 77, 0, 85, 34, 77, 0, 85, 34, 77, 0, 85, 34, 77, 0, 85, 34, 77, 0, 85, 34, 77, 0, 85, 34, 77, 0, 85, 34, 77, 0, 85, 34, 77, 0, 85, 34, 77, 0, 85, 34, 77, 0, 114, 63, 106, 0, 134, 96, 128, 4, 131, 105, 127, 55, 133, 107, 128, 90, 133, 107, 128, 88, 132, 106, 127, 59, 133, 95, 127, 5, 115, 64, 106, 0, 85, 34, 77, 0, 85, 34, 77, 0, 85, 34, 77, 0, 85, 34, 77, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 35, 0, 226, 223, 241, 20, 255, 255, 255, 153, 226, 223, 241, 71, 10, 0, 70, 0, 10, 0, 70, 0, 10, 0, 70, 0, 10, 0, 70, 0, 10, 0, 70, 0, 10, 0, 70, 0, 10, 0, 70, 0, 10, 0, 70, 0, 10, 0, 70, 0, 10, 0, 70, 0, 10, 0, 70, 0, 10, 0, 70, 0, 0, 0, 0, 0, 255, 255, 255, 8, 255, 255, 255, 153, 255, 255, 255, 83, 170, 161, 103, 0, 99, 88, 10, 0, 99, 88, 10, 0, 99, 88, 10, 0, 99, 88, 10, 0, 162, 151, 74, 0, 233, 225, 167, 10, 241, 235, 196, 51, 241, 235, 196, 27, 226, 215, 138, 0, 49, 43, 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, 64, 1, 1, 0, 103, 2, 2, 0, 104, 2, 2, 0, 67, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 12, 0, 13, 13, 13, 0, 12, 12, 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, 68, 17, 43, 0, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 253, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 253, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 253, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 64, 64, 0, 255, 255, 255, 16, 255, 255, 255, 55, 255, 255, 255, 255, 255, 255, 255, 131, 255, 255, 255, 25, 64, 64, 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, 64, 64, 64, 0, 255, 255, 255, 14, 255, 255, 255, 37, 255, 255, 255, 255, 255, 255, 255, 149, 255, 255, 255, 26, 191, 191, 191, 1, 0, 0, 0, 0, 64, 64, 64, 0, 191, 191, 191, 11, 255, 255, 255, 137, 255, 255, 255, 241, 255, 255, 255, 255, 255, 255, 255, 252, 255, 255, 255, 164, 191, 191, 191, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 1, 1, 1, 131, 0, 0, 0, 153, 0, 0, 0, 153, 0, 0, 0, 153, 0, 0, 0, 153, 0, 0, 0, 153, 0, 0, 0, 153, 0, 0, 0, 153, 0, 0, 0, 153, 1, 1, 1, 132, 0, 0, 0, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 90, 0, 0, 0, 150, 2, 0, 0, 153, 74, 2, 2, 153, 192, 4, 4, 173, 231, 5, 5, 200, 231, 5, 5, 201, 194, 4, 4, 175, 77, 2, 2, 153, 3, 0, 0, 153, 0, 0, 0, 151, 0, 0, 0, 93, 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, 15, 15, 32, 0, 42, 42, 99, 11, 82, 82, 155, 110, 102, 102, 174, 122, 102, 102, 174, 122, 102, 102, 174, 122, 102, 102, 174, 122, 102, 102, 174, 122, 102, 102, 174, 122, 102, 102, 174, 122, 102, 102, 174, 122, 102, 102, 174, 122, 110, 110, 179, 116, 120, 120, 185, 107, 120, 120, 185, 107, 120, 120, 185, 107, 120, 120, 185, 107, 120, 120, 185, 107, 143, 143, 200, 101, 41, 41, 54, 0, 68, 17, 43, 0, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 253, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 253, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 253, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 64, 64, 0, 128, 128, 128, 0, 255, 255, 255, 21, 255, 255, 255, 51, 255, 255, 255, 36, 191, 191, 191, 2, 128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 128, 128, 0, 255, 255, 255, 160, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 245, 255, 255, 255, 13, 255, 255, 255, 96, 191, 191, 191, 15, 0, 0, 0, 0, 0, 0, 0, 0, 64, 64, 64, 0, 255, 255, 255, 17, 128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 128, 0, 255, 255, 255, 140, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 10, 128, 128, 128, 0, 255, 255, 255, 75, 255, 255, 255, 223, 255, 255, 255, 255, 255, 255, 255, 251, 255, 255, 255, 189, 255, 255, 255, 237, 255, 255, 255, 255, 255, 255, 255, 158, 128, 128, 128, 0, 0, 0, 0, 0, 1, 1, 1, 67, 60, 60, 60, 248, 188, 188, 188, 255, 204, 204, 204, 255, 204, 204, 204, 255, 204, 204, 204, 255, 204, 204, 204, 255, 204, 204, 204, 255, 204, 204, 204, 255, 204, 204, 204, 255, 204, 204, 204, 255, 189, 189, 189, 255, 62, 62, 62, 249, 1, 1, 1, 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 119, 112, 112, 112, 255, 218, 175, 175, 255, 245, 43, 43, 255, 255, 6, 6, 255, 255, 6, 6, 255, 255, 6, 6, 255, 255, 6, 6, 255, 255, 6, 6, 255, 255, 6, 6, 255, 246, 41, 41, 255, 219, 172, 172, 255, 118, 118, 118, 255, 0, 0, 0, 126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 17, 33, 0, 50, 50, 100, 26, 68, 68, 142, 141, 75, 75, 154, 245, 77, 77, 159, 255, 77, 77, 159, 255, 77, 77, 159, 255, 77, 77, 159, 255, 77, 77, 159, 255, 77, 77, 159, 255, 77, 77, 159, 255, 77, 77, 159, 255, 77, 77, 159, 255, 77, 77, 159, 255, 77, 77, 159, 255, 77, 77, 159, 255, 77, 77, 159, 255, 77, 77, 159, 255, 77, 77, 159, 255, 91, 91, 168, 255, 195, 195, 239, 253, 108, 108, 127, 0, 68, 17, 43, 0, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 253, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 253, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 253, 0, 0, 0, 0, 0, 0, 0, 0, 64, 64, 64, 0, 191, 191, 191, 19, 255, 255, 255, 125, 255, 255, 255, 230, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 248, 255, 255, 255, 169, 255, 255, 255, 53, 64, 64, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 64, 64, 0, 255, 255, 255, 80, 255, 255, 255, 144, 255, 255, 255, 255, 255, 255, 255, 186, 255, 255, 255, 123, 255, 255, 255, 109, 255, 255, 255, 255, 255, 255, 255, 175, 191, 191, 191, 1, 64, 64, 64, 0, 255, 255, 255, 94, 255, 255, 255, 248, 255, 255, 255, 101, 128, 128, 128, 0, 0, 0, 0, 0, 64, 64, 64, 0, 255, 255, 255, 70, 255, 255, 255, 134, 255, 255, 255, 255, 255, 255, 255, 196, 255, 255, 255, 128, 255, 255, 255, 30, 255, 255, 255, 170, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 197, 255, 255, 255, 44, 128, 128, 128, 0, 191, 191, 191, 28, 255, 255, 255, 245, 255, 255, 255, 249, 255, 255, 255, 14, 0, 0, 0, 0, 3, 3, 3, 187, 237, 237, 237, 255, 211, 211, 211, 255, 144, 144, 144, 255, 247, 247, 247, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 252, 252, 252, 255, 148, 148, 148, 255, 202, 202, 202, 255, 238, 238, 238, 255, 4, 4, 4, 191, 0, 0, 0, 0, 0, 0, 0, 0, 14, 14, 14, 206, 253, 201, 201, 255, 255, 19, 19, 255, 255, 6, 6, 255, 255, 34, 34, 255, 255, 135, 135, 255, 255, 185, 185, 255, 255, 186, 186, 255, 255, 137, 137, 255, 255, 37, 37, 255, 255, 6, 6, 255, 255, 17, 17, 255, 254, 197, 197, 255, 20, 20, 20, 214, 0, 0, 0, 0, 0, 0, 0, 0, 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, 26, 60, 0, 50, 50, 119, 45, 71, 71, 146, 161, 76, 76, 156, 252, 77, 77, 159, 255, 77, 77, 159, 255, 77, 77, 159, 255, 77, 77, 159, 255, 77, 77, 159, 255, 77, 77, 159, 255, 77, 77, 159, 255, 77, 77, 159, 255, 77, 77, 159, 255, 77, 77, 159, 255, 77, 77, 159, 255, 77, 77, 159, 255, 77, 77, 159, 255, 77, 77, 159, 255, 77, 77, 159, 255, 77, 77, 159, 255, 89, 89, 167, 255, 194, 194, 239, 255, 216, 216, 255, 253, 108, 108, 128, 0, 68, 17, 43, 0, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 253, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 253, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 253, 0, 0, 0, 0, 64, 64, 64, 0, 255, 255, 255, 50, 255, 255, 255, 229, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 226, 255, 255, 255, 196, 255, 255, 255, 216, 255, 255, 255, 250, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 141, 191, 191, 191, 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, 255, 255, 255, 33, 255, 255, 255, 255, 255, 255, 255, 118, 0, 0, 0, 0, 255, 255, 255, 76, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 117, 255, 255, 255, 92, 255, 255, 255, 253, 255, 255, 255, 255, 255, 255, 255, 98, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 13, 255, 255, 255, 255, 255, 255, 255, 138, 255, 255, 255, 62, 255, 255, 255, 238, 255, 255, 255, 255, 255, 255, 255, 239, 255, 255, 255, 104, 191, 191, 191, 2, 0, 0, 0, 0, 0, 0, 0, 0, 191, 191, 191, 2, 255, 255, 255, 231, 255, 255, 255, 255, 255, 255, 255, 25, 0, 0, 0, 0, 30, 30, 30, 221, 255, 255, 255, 255, 74, 74, 74, 255, 0, 0, 0, 255, 176, 176, 176, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 196, 196, 196, 255, 0, 0, 0, 255, 53, 53, 53, 255, 255, 255, 255, 255, 33, 33, 33, 224, 0, 0, 0, 0, 0, 0, 0, 0, 38, 26, 26, 219, 255, 33, 33, 255, 255, 6, 6, 255, 167, 4, 4, 255, 179, 170, 170, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 202, 194, 194, 255, 164, 3, 3, 255, 255, 5, 5, 255, 255, 28, 28, 255, 49, 34, 34, 228, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 65, 0, 64, 64, 128, 66, 69, 69, 143, 182, 76, 76, 158, 255, 77, 77, 159, 255, 77, 77, 159, 255, 77, 77, 159, 255, 77, 77, 159, 255, 77, 77, 159, 255, 77, 77, 159, 255, 77, 77, 159, 255, 77, 77, 159, 255, 77, 77, 159, 255, 77, 77, 159, 255, 77, 77, 159, 255, 77, 77, 159, 255, 77, 77, 159, 255, 77, 77, 159, 255, 77, 77, 159, 255, 77, 77, 159, 255, 77, 77, 159, 255, 88, 88, 166, 255, 192, 192, 238, 255, 215, 215, 255, 255, 216, 216, 255, 253, 108, 108, 128, 0, 68, 17, 43, 0, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 253, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 230, 218, 156, 255, 239, 231, 192, 255, 239, 231, 192, 255, 239, 231, 192, 255, 230, 218, 156, 255, 221, 204, 119, 255, 222, 205, 121, 255, 236, 227, 181, 255, 241, 235, 201, 255, 241, 235, 201, 255, 241, 235, 201, 255, 241, 235, 201, 255, 241, 235, 201, 255, 241, 235, 201, 255, 241, 235, 201, 255, 241, 235, 201, 255, 236, 227, 181, 255, 222, 205, 121, 255, 221, 204, 119, 255, 230, 218, 156, 255, 239, 231, 192, 255, 239, 231, 192, 255, 239, 231, 192, 255, 230, 218, 156, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 255, 255, 255, 255, 253, 253, 254, 255, 51, 34, 136, 255, 51, 34, 136, 255, 255, 255, 255, 255, 253, 253, 254, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 255, 255, 255, 255, 253, 253, 254, 255, 51, 34, 136, 255, 51, 34, 136, 255, 255, 255, 255, 255, 253, 253, 254, 255, 255, 255, 255, 255, 253, 253, 254, 255, 51, 34, 136, 255, 51, 34, 136, 255, 255, 255, 255, 255, 253, 253, 254, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 253, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 253, 0, 0, 0, 0, 255, 255, 255, 55, 255, 255, 255, 244, 255, 255, 255, 255, 255, 255, 255, 185, 255, 255, 255, 54, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 19, 255, 255, 255, 124, 255, 255, 255, 245, 255, 255, 255, 255, 255, 255, 255, 177, 191, 191, 191, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 64, 64, 0, 255, 255, 255, 0, 191, 191, 191, 0, 128, 128, 128, 0, 255, 255, 255, 44, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 251, 255, 255, 255, 252, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 64, 64, 0, 128, 128, 128, 0, 255, 255, 255, 10, 255, 255, 255, 231, 255, 255, 255, 255, 255, 255, 255, 174, 255, 255, 255, 88, 255, 255, 255, 128, 255, 255, 255, 115, 255, 255, 255, 31, 191, 191, 191, 16, 255, 255, 255, 162, 255, 255, 255, 255, 255, 255, 255, 214, 191, 191, 191, 1, 0, 0, 0, 0, 32, 32, 32, 222, 255, 255, 255, 255, 193, 193, 193, 255, 113, 113, 113, 255, 240, 240, 240, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 248, 248, 248, 255, 117, 117, 117, 255, 181, 181, 181, 255, 255, 255, 255, 255, 35, 35, 35, 225, 0, 0, 0, 0, 16, 0, 0, 0, 130, 7, 7, 223, 255, 6, 6, 255, 248, 53, 53, 255, 127, 123, 123, 255, 242, 242, 242, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 249, 249, 255, 250, 145, 145, 255, 233, 9, 9, 255, 255, 6, 6, 255, 255, 6, 6, 255, 137, 7, 7, 231, 19, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 0, 33, 33, 68, 0, 65, 65, 136, 88, 72, 72, 147, 205, 77, 77, 159, 255, 77, 77, 159, 255, 77, 77, 159, 255, 77, 77, 159, 255, 77, 77, 159, 255, 77, 77, 159, 255, 77, 77, 159, 255, 77, 77, 159, 255, 77, 77, 159, 255, 77, 77, 159, 255, 77, 77, 159, 255, 77, 77, 159, 255, 77, 77, 159, 255, 77, 77, 159, 255, 77, 77, 159, 255, 77, 77, 159, 255, 77, 77, 159, 255, 77, 77, 159, 255, 77, 77, 159, 255, 87, 87, 165, 255, 191, 191, 237, 255, 215, 215, 255, 255, 215, 215, 255, 255, 216, 216, 255, 253, 108, 108, 128, 0, 68, 17, 43, 0, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 135, 33, 84, 255, 141, 44, 92, 255, 148, 56, 102, 255, 148, 56, 102, 255, 148, 56, 102, 255, 148, 56, 102, 255, 148, 56, 102, 255, 148, 56, 102, 255, 148, 56, 102, 255, 148, 56, 102, 255, 148, 56, 102, 255, 148, 56, 102, 255, 148, 56, 102, 255, 148, 56, 102, 255, 148, 56, 102, 255, 148, 56, 102, 255, 148, 56, 102, 255, 142, 45, 93, 255, 135, 33, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 253, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 236, 226, 178, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 252, 250, 242, 255, 221, 204, 119, 255, 231, 220, 161, 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, 232, 220, 161, 255, 221, 204, 119, 255, 252, 250, 242, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 236, 227, 179, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 255, 255, 255, 255, 253, 253, 254, 255, 51, 34, 136, 255, 51, 34, 136, 255, 255, 255, 255, 255, 253, 253, 254, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 255, 255, 255, 255, 253, 253, 254, 255, 51, 34, 136, 255, 51, 34, 136, 255, 255, 255, 255, 255, 253, 253, 254, 255, 255, 255, 255, 255, 253, 253, 254, 255, 51, 34, 136, 255, 51, 34, 136, 255, 255, 255, 255, 255, 253, 253, 254, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 253, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 171, 69, 154, 255, 201, 135, 189, 255, 218, 174, 211, 255, 203, 140, 192, 255, 171, 70, 154, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 253, 191, 191, 191, 6, 255, 255, 255, 211, 255, 255, 255, 255, 255, 255, 255, 150, 191, 191, 191, 3, 128, 128, 128, 0, 255, 255, 255, 139, 255, 255, 255, 246, 255, 255, 255, 226, 255, 255, 255, 72, 128, 128, 128, 0, 255, 255, 255, 50, 255, 255, 255, 229, 255, 255, 255, 255, 255, 255, 255, 117, 64, 64, 64, 0, 64, 64, 64, 0, 191, 191, 191, 4, 64, 64, 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, 64, 64, 64, 0, 255, 255, 255, 4, 64, 64, 64, 0, 0, 0, 0, 0, 128, 128, 128, 0, 255, 255, 255, 129, 255, 255, 255, 203, 255, 255, 255, 179, 255, 255, 255, 185, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 233, 255, 255, 255, 39, 255, 255, 255, 15, 128, 128, 128, 0, 64, 64, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 63, 255, 255, 255, 255, 255, 255, 255, 189, 255, 255, 255, 189, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 236, 255, 255, 255, 175, 255, 255, 255, 232, 255, 255, 255, 255, 255, 255, 255, 239, 255, 255, 255, 57, 64, 64, 64, 0, 0, 0, 0, 0, 32, 32, 32, 222, 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, 35, 35, 35, 225, 0, 0, 0, 0, 95, 1, 1, 0, 218, 5, 5, 243, 255, 6, 6, 255, 255, 187, 187, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 251, 251, 255, 255, 157, 157, 255, 255, 35, 35, 255, 255, 6, 6, 255, 255, 6, 6, 255, 255, 6, 6, 255, 255, 6, 6, 255, 223, 5, 5, 247, 99, 1, 1, 0, 0, 0, 0, 0, 36, 36, 82, 5, 43, 43, 121, 106, 73, 73, 150, 226, 77, 77, 159, 255, 77, 77, 159, 255, 77, 77, 159, 255, 77, 77, 159, 255, 77, 77, 159, 255, 77, 77, 159, 255, 77, 77, 159, 255, 77, 77, 159, 255, 77, 77, 159, 255, 77, 77, 159, 255, 77, 77, 159, 255, 77, 77, 159, 255, 77, 77, 159, 255, 77, 77, 159, 255, 77, 77, 159, 255, 77, 77, 159, 255, 77, 77, 159, 255, 77, 77, 159, 255, 77, 77, 159, 255, 77, 77, 159, 255, 85, 85, 164, 255, 189, 189, 236, 255, 215, 215, 255, 255, 215, 215, 255, 255, 215, 215, 255, 255, 216, 216, 255, 253, 108, 108, 128, 0, 68, 17, 43, 0, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 151, 62, 106, 255, 250, 246, 248, 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, 252, 249, 250, 255, 155, 70, 113, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 253, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 236, 226, 178, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 252, 251, 244, 255, 221, 204, 119, 255, 233, 223, 169, 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, 233, 223, 169, 255, 221, 204, 119, 255, 252, 251, 244, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 236, 227, 179, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 255, 255, 255, 255, 253, 253, 254, 255, 255, 255, 255, 255, 253, 253, 254, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 255, 255, 255, 255, 253, 253, 254, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 253, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 223, 184, 216, 255, 255, 255, 255, 255, 252, 247, 251, 255, 255, 255, 255, 255, 227, 195, 222, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 253, 255, 255, 255, 96, 255, 255, 255, 255, 255, 255, 255, 209, 191, 191, 191, 4, 0, 0, 0, 0, 255, 255, 255, 20, 255, 255, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 187, 128, 128, 128, 0, 64, 64, 64, 0, 255, 255, 255, 61, 255, 255, 255, 253, 255, 255, 255, 248, 255, 255, 255, 13, 255, 255, 255, 57, 255, 255, 255, 240, 255, 255, 255, 109, 64, 64, 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, 64, 64, 64, 0, 255, 255, 255, 118, 255, 255, 255, 240, 255, 255, 255, 48, 0, 0, 0, 0, 128, 128, 128, 0, 255, 255, 255, 194, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 167, 255, 255, 255, 54, 255, 255, 255, 102, 255, 255, 255, 250, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 246, 255, 255, 255, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 47, 255, 255, 255, 184, 255, 255, 255, 246, 255, 255, 255, 255, 255, 255, 255, 231, 255, 255, 255, 159, 255, 255, 255, 201, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 185, 255, 255, 255, 35, 64, 64, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 32, 222, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 112, 112, 112, 255, 110, 110, 110, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 35, 35, 35, 225, 0, 0, 0, 0, 255, 0, 0, 5, 254, 6, 6, 255, 255, 10, 10, 255, 255, 251, 251, 255, 255, 255, 255, 255, 255, 252, 252, 255, 255, 164, 164, 255, 251, 36, 36, 255, 255, 6, 6, 255, 255, 6, 6, 255, 255, 6, 6, 255, 255, 39, 39, 255, 255, 160, 160, 255, 255, 15, 15, 255, 255, 6, 6, 255, 255, 0, 0, 11, 0, 0, 0, 0, 102, 102, 157, 86, 132, 132, 189, 255, 126, 126, 183, 255, 123, 123, 180, 255, 119, 119, 177, 255, 115, 115, 175, 255, 114, 114, 174, 255, 109, 109, 173, 255, 108, 108, 173, 255, 106, 106, 175, 255, 103, 103, 172, 255, 98, 98, 167, 255, 103, 103, 172, 252, 112, 112, 180, 255, 108, 108, 178, 255, 107, 107, 177, 255, 95, 95, 170, 255, 92, 92, 168, 255, 77, 77, 159, 255, 77, 77, 159, 255, 77, 77, 159, 255, 77, 77, 159, 255, 84, 84, 164, 255, 187, 187, 235, 255, 215, 215, 255, 255, 215, 215, 255, 255, 215, 215, 255, 255, 215, 215, 255, 255, 216, 216, 255, 253, 108, 108, 128, 0, 68, 17, 43, 0, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 166, 90, 128, 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, 172, 101, 137, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 253, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 236, 226, 178, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 252, 251, 244, 255, 221, 204, 119, 255, 233, 223, 169, 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, 233, 223, 169, 255, 221, 204, 119, 255, 252, 251, 244, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 236, 227, 179, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 255, 255, 255, 255, 253, 253, 254, 255, 255, 255, 255, 255, 253, 253, 254, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 255, 255, 255, 255, 253, 253, 254, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 253, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 175, 79, 159, 255, 218, 174, 211, 255, 221, 180, 214, 255, 221, 180, 214, 255, 221, 180, 214, 255, 221, 180, 214, 255, 221, 180, 214, 255, 221, 180, 214, 255, 221, 180, 214, 255, 221, 180, 214, 255, 221, 180, 214, 255, 221, 180, 214, 255, 221, 180, 214, 255, 223, 185, 217, 255, 255, 255, 255, 255, 216, 169, 208, 255, 170, 68, 153, 255, 211, 158, 202, 255, 255, 255, 255, 255, 225, 189, 219, 255, 221, 180, 214, 255, 221, 180, 214, 255, 218, 173, 210, 255, 175, 78, 158, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 253, 255, 255, 255, 83, 255, 255, 255, 255, 255, 255, 255, 233, 191, 191, 191, 27, 0, 0, 0, 0, 191, 191, 191, 10, 255, 255, 255, 238, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 160, 128, 128, 128, 0, 64, 64, 64, 0, 255, 255, 255, 91, 255, 255, 255, 255, 255, 255, 255, 241, 255, 255, 255, 10, 255, 255, 255, 44, 255, 255, 255, 251, 255, 255, 255, 251, 255, 255, 255, 61, 64, 64, 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, 64, 64, 64, 0, 255, 255, 255, 68, 255, 255, 255, 253, 255, 255, 255, 249, 255, 255, 255, 36, 0, 0, 0, 0, 0, 0, 0, 0, 191, 191, 191, 6, 255, 255, 255, 120, 255, 255, 255, 244, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 18, 0, 0, 0, 0, 128, 128, 128, 0, 255, 255, 255, 182, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 232, 255, 255, 255, 52, 0, 0, 0, 0, 64, 64, 64, 0, 255, 255, 255, 57, 255, 255, 255, 213, 255, 255, 255, 255, 255, 255, 255, 253, 255, 255, 255, 181, 255, 255, 255, 173, 255, 255, 255, 245, 255, 255, 255, 255, 255, 255, 255, 233, 255, 255, 255, 170, 255, 255, 255, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 32, 222, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 248, 248, 248, 255, 10, 10, 10, 255, 9, 9, 9, 255, 246, 246, 246, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 35, 35, 35, 225, 0, 0, 0, 0, 255, 3, 3, 18, 255, 6, 6, 255, 255, 21, 21, 255, 255, 254, 254, 255, 255, 170, 170, 255, 255, 46, 46, 255, 255, 6, 6, 255, 255, 6, 6, 255, 255, 6, 6, 255, 255, 34, 34, 255, 255, 155, 155, 255, 255, 250, 250, 255, 255, 255, 255, 255, 255, 29, 29, 255, 255, 6, 6, 255, 255, 5, 5, 26, 0, 0, 0, 0, 102, 102, 157, 86, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 137, 137, 193, 255, 141, 141, 195, 255, 141, 141, 196, 255, 175, 175, 223, 255, 215, 215, 255, 255, 215, 215, 255, 255, 215, 215, 255, 255, 215, 215, 255, 255, 215, 215, 255, 255, 216, 216, 255, 253, 108, 108, 128, 0, 68, 17, 43, 0, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 166, 90, 128, 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, 172, 101, 137, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 253, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 236, 226, 179, 255, 253, 252, 247, 255, 253, 252, 247, 255, 253, 252, 247, 255, 244, 239, 214, 255, 221, 204, 119, 255, 225, 210, 136, 255, 251, 249, 240, 255, 253, 252, 247, 255, 253, 252, 247, 255, 253, 252, 247, 255, 253, 252, 247, 255, 253, 252, 247, 255, 253, 252, 247, 255, 253, 252, 247, 255, 253, 252, 247, 255, 251, 250, 240, 255, 225, 210, 136, 255, 221, 204, 119, 255, 244, 239, 213, 255, 253, 252, 247, 255, 253, 252, 247, 255, 253, 252, 247, 255, 236, 227, 180, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 255, 255, 255, 255, 253, 253, 254, 255, 255, 255, 255, 255, 253, 253, 254, 255, 51, 34, 136, 255, 51, 34, 136, 255, 255, 255, 255, 255, 253, 253, 254, 255, 51, 34, 136, 255, 51, 34, 136, 255, 255, 255, 255, 255, 253, 253, 254, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 255, 255, 255, 255, 253, 253, 254, 255, 51, 34, 136, 255, 51, 34, 136, 255, 255, 255, 255, 255, 253, 253, 254, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 253, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 187, 106, 174, 255, 245, 232, 242, 255, 247, 236, 245, 255, 247, 236, 245, 255, 247, 236, 245, 255, 247, 236, 245, 255, 247, 236, 245, 255, 247, 236, 245, 255, 247, 236, 245, 255, 247, 236, 245, 255, 247, 236, 245, 255, 247, 236, 245, 255, 247, 236, 245, 255, 248, 239, 246, 255, 255, 255, 255, 255, 201, 136, 190, 255, 170, 68, 153, 255, 196, 126, 184, 255, 255, 255, 255, 255, 248, 240, 247, 255, 247, 236, 245, 255, 247, 236, 245, 255, 244, 231, 242, 255, 186, 104, 173, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 253, 191, 191, 191, 0, 255, 255, 255, 171, 255, 255, 255, 255, 255, 255, 255, 210, 191, 191, 191, 31, 128, 128, 128, 0, 255, 255, 255, 58, 255, 255, 255, 146, 255, 255, 255, 127, 191, 191, 191, 24, 128, 128, 128, 0, 255, 255, 255, 81, 255, 255, 255, 245, 255, 255, 255, 255, 255, 255, 255, 86, 64, 64, 64, 0, 64, 64, 64, 0, 255, 255, 255, 120, 255, 255, 255, 255, 255, 255, 255, 236, 255, 255, 255, 64, 128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 128, 0, 255, 255, 255, 70, 255, 255, 255, 239, 255, 255, 255, 255, 255, 255, 255, 111, 64, 64, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 128, 0, 255, 255, 255, 84, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 60, 128, 128, 128, 0, 191, 191, 191, 8, 255, 255, 255, 216, 255, 255, 255, 255, 255, 255, 255, 209, 255, 255, 255, 97, 191, 191, 191, 7, 64, 64, 64, 0, 64, 64, 64, 0, 255, 255, 255, 74, 255, 255, 255, 248, 255, 255, 255, 255, 255, 255, 255, 211, 255, 255, 255, 146, 255, 255, 255, 244, 255, 255, 255, 255, 255, 255, 255, 252, 255, 255, 255, 161, 255, 255, 255, 190, 255, 255, 255, 255, 255, 255, 255, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 32, 222, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 205, 205, 205, 255, 204, 204, 204, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 35, 35, 35, 225, 0, 0, 0, 0, 189, 1, 1, 2, 250, 5, 5, 253, 255, 6, 6, 255, 255, 50, 50, 255, 255, 6, 6, 255, 255, 6, 6, 255, 255, 6, 6, 255, 255, 30, 30, 255, 250, 144, 144, 255, 255, 248, 248, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 243, 243, 255, 255, 9, 9, 255, 252, 6, 6, 254, 255, 0, 0, 5, 0, 0, 0, 0, 102, 102, 157, 86, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 172, 172, 221, 255, 215, 215, 255, 255, 215, 215, 255, 255, 215, 215, 255, 255, 215, 215, 255, 255, 215, 215, 255, 255, 216, 216, 255, 253, 108, 108, 128, 0, 68, 17, 43, 0, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 166, 90, 128, 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, 172, 101, 137, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 253, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 223, 207, 126, 255, 224, 209, 133, 255, 224, 209, 133, 255, 224, 208, 130, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 222, 205, 122, 255, 224, 209, 133, 255, 224, 209, 133, 255, 224, 209, 133, 255, 224, 209, 133, 255, 224, 209, 133, 255, 224, 209, 133, 255, 224, 209, 133, 255, 224, 209, 133, 255, 222, 205, 122, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 224, 208, 130, 255, 224, 209, 133, 255, 224, 209, 133, 255, 223, 207, 126, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 255, 255, 255, 255, 253, 253, 254, 255, 255, 255, 255, 255, 253, 253, 254, 255, 51, 34, 136, 255, 51, 34, 136, 255, 255, 255, 255, 255, 253, 253, 254, 255, 51, 34, 136, 255, 51, 34, 136, 255, 255, 255, 255, 255, 253, 253, 254, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 255, 255, 255, 255, 253, 253, 254, 255, 51, 34, 136, 255, 51, 34, 136, 255, 255, 255, 255, 255, 253, 253, 254, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 253, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 171, 71, 155, 255, 241, 224, 238, 255, 249, 242, 248, 255, 223, 185, 217, 255, 248, 239, 246, 255, 244, 231, 242, 255, 173, 74, 157, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 253, 0, 0, 0, 0, 191, 191, 191, 15, 255, 255, 255, 204, 255, 255, 255, 255, 255, 255, 255, 234, 255, 255, 255, 106, 191, 191, 191, 10, 255, 255, 255, 0, 191, 191, 191, 0, 255, 255, 255, 31, 255, 255, 255, 150, 255, 255, 255, 253, 255, 255, 255, 255, 255, 255, 255, 133, 128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 191, 191, 191, 1, 255, 255, 255, 162, 255, 255, 255, 255, 255, 255, 255, 250, 255, 255, 255, 142, 255, 255, 255, 33, 128, 128, 128, 0, 128, 128, 128, 0, 255, 255, 255, 37, 255, 255, 255, 148, 255, 255, 255, 251, 255, 255, 255, 255, 255, 255, 255, 152, 191, 191, 191, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 191, 191, 191, 33, 255, 255, 255, 234, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 241, 255, 255, 255, 162, 255, 255, 255, 213, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 158, 128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 191, 191, 191, 1, 255, 255, 255, 217, 255, 255, 255, 255, 255, 255, 255, 134, 191, 191, 191, 5, 191, 191, 191, 6, 255, 255, 255, 71, 255, 255, 255, 88, 255, 255, 255, 77, 255, 255, 255, 199, 255, 255, 255, 255, 255, 255, 255, 224, 191, 191, 191, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 32, 222, 255, 255, 255, 255, 255, 255, 255, 255, 252, 252, 252, 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, 252, 252, 252, 255, 255, 255, 255, 255, 255, 255, 255, 255, 35, 35, 35, 225, 0, 0, 0, 0, 67, 1, 1, 0, 194, 4, 4, 236, 255, 6, 6, 255, 255, 6, 6, 255, 255, 6, 6, 255, 255, 27, 27, 255, 255, 142, 142, 255, 255, 246, 246, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 247, 247, 247, 255, 255, 158, 158, 255, 255, 6, 6, 255, 199, 5, 5, 242, 81, 1, 1, 0, 0, 0, 0, 0, 102, 102, 157, 86, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 172, 172, 221, 255, 215, 215, 255, 255, 215, 215, 255, 255, 215, 215, 255, 255, 215, 215, 255, 255, 215, 215, 255, 255, 216, 216, 255, 253, 108, 108, 128, 0, 68, 17, 43, 0, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 166, 90, 128, 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, 172, 101, 137, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 253, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 222, 205, 121, 255, 232, 220, 162, 255, 234, 223, 171, 255, 234, 223, 171, 255, 234, 223, 171, 255, 234, 223, 171, 255, 234, 223, 171, 255, 234, 223, 171, 255, 234, 223, 171, 255, 234, 223, 171, 255, 228, 215, 147, 255, 221, 204, 119, 255, 221, 204, 119, 255, 228, 214, 147, 255, 234, 223, 171, 255, 234, 223, 171, 255, 234, 223, 171, 255, 234, 223, 171, 255, 234, 223, 171, 255, 234, 223, 171, 255, 234, 223, 171, 255, 234, 223, 171, 255, 232, 220, 162, 255, 222, 205, 121, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 255, 255, 255, 255, 253, 253, 254, 255, 51, 34, 136, 255, 51, 34, 136, 255, 255, 255, 255, 255, 253, 253, 254, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 255, 255, 255, 255, 253, 253, 254, 255, 51, 34, 136, 255, 51, 34, 136, 255, 255, 255, 255, 255, 253, 253, 254, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 253, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 181, 92, 166, 255, 229, 198, 224, 255, 246, 236, 244, 255, 231, 202, 226, 255, 183, 97, 169, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 253, 0, 0, 0, 0, 0, 0, 0, 0, 191, 191, 191, 10, 255, 255, 255, 171, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 250, 255, 255, 255, 217, 255, 255, 255, 229, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 250, 255, 255, 255, 102, 128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 191, 191, 191, 1, 255, 255, 255, 123, 255, 255, 255, 253, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 241, 255, 255, 255, 241, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 251, 255, 255, 255, 117, 128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 191, 191, 191, 14, 255, 255, 255, 214, 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, 73, 64, 64, 64, 0, 0, 0, 0, 0, 255, 255, 255, 12, 255, 255, 255, 255, 255, 255, 255, 237, 191, 191, 191, 1, 0, 0, 0, 0, 64, 64, 64, 0, 191, 191, 191, 10, 255, 255, 255, 136, 255, 255, 255, 251, 255, 255, 255, 255, 255, 255, 255, 222, 255, 255, 255, 44, 64, 64, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 32, 32, 222, 255, 255, 255, 255, 102, 102, 102, 255, 17, 17, 17, 255, 222, 222, 222, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 210, 210, 210, 255, 14, 14, 14, 255, 117, 117, 117, 255, 255, 255, 255, 255, 35, 35, 35, 225, 0, 0, 0, 0, 2, 0, 0, 0, 93, 12, 12, 220, 255, 6, 6, 255, 255, 6, 6, 255, 150, 7, 7, 255, 219, 207, 207, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 209, 209, 209, 255, 38, 11, 11, 255, 236, 10, 10, 255, 255, 6, 6, 255, 102, 14, 14, 229, 4, 0, 0, 0, 0, 0, 0, 0, 102, 102, 157, 86, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 172, 172, 221, 255, 215, 215, 255, 255, 215, 215, 255, 255, 215, 215, 255, 255, 215, 215, 255, 255, 215, 215, 255, 255, 216, 216, 255, 253, 108, 108, 128, 0, 68, 17, 43, 0, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 166, 90, 128, 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, 172, 101, 137, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 253, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 234, 223, 170, 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, 253, 252, 249, 255, 223, 208, 129, 255, 223, 207, 129, 255, 253, 253, 249, 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, 234, 223, 171, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 255, 255, 255, 255, 253, 253, 254, 255, 51, 34, 136, 255, 51, 34, 136, 255, 255, 255, 255, 255, 253, 253, 254, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 255, 255, 255, 255, 253, 253, 254, 255, 51, 34, 136, 255, 51, 34, 136, 255, 255, 255, 255, 255, 253, 253, 254, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 253, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 253, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 128, 0, 255, 255, 255, 71, 255, 255, 255, 186, 255, 255, 255, 249, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 237, 255, 255, 255, 150, 255, 255, 255, 32, 64, 64, 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, 64, 64, 64, 0, 255, 255, 255, 37, 255, 255, 255, 152, 255, 255, 255, 228, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 223, 255, 255, 255, 150, 255, 255, 255, 32, 64, 64, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 191, 191, 191, 5, 255, 255, 255, 201, 255, 255, 255, 200, 255, 255, 255, 110, 255, 255, 255, 53, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 231, 255, 255, 255, 124, 255, 255, 255, 238, 255, 255, 255, 255, 255, 255, 255, 217, 191, 191, 191, 1, 0, 0, 0, 0, 191, 191, 191, 4, 255, 255, 255, 234, 255, 255, 255, 254, 255, 255, 255, 63, 128, 128, 128, 0, 255, 255, 255, 73, 255, 255, 255, 221, 255, 255, 255, 255, 255, 255, 255, 251, 255, 255, 255, 137, 191, 191, 191, 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, 21, 21, 21, 214, 255, 255, 255, 255, 85, 85, 85, 255, 8, 8, 8, 255, 216, 216, 216, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 202, 202, 202, 255, 6, 6, 6, 255, 101, 101, 101, 255, 255, 255, 255, 255, 24, 24, 24, 217, 0, 0, 0, 0, 0, 0, 0, 0, 27, 27, 27, 218, 255, 77, 77, 255, 255, 6, 6, 255, 226, 5, 5, 255, 222, 159, 159, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 215, 157, 157, 255, 223, 5, 5, 255, 255, 6, 6, 255, 255, 71, 71, 255, 37, 36, 36, 227, 0, 0, 0, 0, 0, 0, 0, 0, 102, 102, 157, 86, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 172, 172, 221, 255, 215, 215, 255, 255, 215, 215, 255, 255, 215, 215, 255, 255, 215, 215, 255, 255, 215, 215, 255, 255, 216, 216, 255, 253, 108, 108, 128, 0, 68, 17, 43, 0, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 166, 90, 128, 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, 240, 228, 234, 255, 238, 224, 231, 255, 255, 255, 255, 255, 255, 255, 255, 255, 172, 101, 137, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 253, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 236, 226, 178, 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, 227, 213, 142, 255, 226, 212, 141, 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, 236, 226, 179, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 255, 255, 255, 255, 253, 253, 254, 255, 255, 255, 255, 255, 253, 253, 254, 255, 51, 34, 136, 255, 51, 34, 136, 255, 255, 255, 255, 255, 253, 253, 254, 255, 255, 255, 255, 255, 253, 253, 254, 255, 51, 34, 136, 255, 51, 34, 136, 255, 255, 255, 255, 255, 253, 253, 254, 255, 51, 34, 136, 255, 51, 34, 136, 255, 255, 255, 255, 255, 253, 253, 254, 255, 255, 255, 255, 255, 253, 253, 254, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 253, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 253, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 128, 0, 191, 191, 191, 1, 255, 255, 255, 34, 255, 255, 255, 21, 128, 128, 128, 0, 128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 128, 128, 0, 128, 128, 128, 0, 191, 191, 191, 10, 191, 191, 191, 11, 128, 128, 128, 0, 128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 191, 191, 5, 128, 128, 128, 0, 64, 64, 64, 0, 191, 191, 191, 0, 255, 255, 255, 234, 255, 255, 255, 255, 255, 255, 255, 148, 191, 191, 191, 0, 191, 191, 191, 14, 255, 255, 255, 125, 255, 255, 255, 72, 64, 64, 64, 0, 0, 0, 0, 0, 64, 64, 64, 0, 255, 255, 255, 118, 255, 255, 255, 255, 255, 255, 255, 254, 255, 255, 255, 235, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 200, 255, 255, 255, 47, 64, 64, 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, 1, 1, 1, 154, 187, 187, 187, 254, 255, 255, 255, 255, 242, 242, 242, 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, 242, 242, 242, 255, 255, 255, 255, 255, 190, 190, 190, 254, 1, 1, 1, 157, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 180, 223, 208, 208, 255, 255, 65, 65, 255, 255, 6, 6, 255, 255, 6, 6, 255, 255, 51, 51, 255, 255, 102, 102, 255, 255, 103, 103, 255, 255, 53, 53, 255, 255, 6, 6, 255, 255, 6, 6, 255, 255, 60, 60, 255, 227, 209, 209, 255, 5, 5, 5, 187, 0, 0, 0, 0, 0, 0, 0, 0, 102, 102, 157, 86, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 172, 172, 221, 255, 215, 215, 255, 255, 215, 215, 255, 255, 215, 215, 255, 255, 215, 215, 255, 255, 215, 215, 255, 255, 216, 216, 255, 253, 108, 108, 128, 0, 68, 17, 43, 0, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 166, 90, 128, 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, 248, 242, 245, 255, 145, 51, 98, 255, 142, 46, 94, 255, 244, 235, 240, 255, 255, 255, 255, 255, 172, 101, 137, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 253, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 236, 226, 178, 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, 227, 213, 142, 255, 226, 212, 141, 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, 236, 226, 179, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 255, 255, 255, 255, 253, 253, 254, 255, 255, 255, 255, 255, 253, 253, 254, 255, 51, 34, 136, 255, 51, 34, 136, 255, 255, 255, 255, 255, 253, 253, 254, 255, 255, 255, 255, 255, 253, 253, 254, 255, 51, 34, 136, 255, 51, 34, 136, 255, 255, 255, 255, 255, 253, 253, 254, 255, 51, 34, 136, 255, 51, 34, 136, 255, 255, 255, 255, 255, 253, 253, 254, 255, 255, 255, 255, 255, 253, 253, 254, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 253, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 175, 79, 159, 255, 213, 163, 205, 255, 227, 193, 221, 255, 206, 148, 196, 255, 171, 70, 154, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 253, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 128, 128, 0, 255, 255, 255, 182, 255, 255, 255, 255, 255, 255, 255, 62, 0, 0, 0, 0, 0, 0, 0, 0, 64, 64, 64, 0, 64, 64, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 64, 64, 0, 255, 255, 255, 113, 255, 255, 255, 230, 255, 255, 255, 255, 255, 255, 255, 215, 255, 255, 255, 103, 191, 191, 191, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 7, 7, 7, 191, 86, 86, 86, 255, 102, 102, 102, 255, 102, 102, 102, 255, 102, 102, 102, 255, 102, 102, 102, 255, 102, 102, 102, 255, 102, 102, 102, 255, 102, 102, 102, 255, 102, 102, 102, 255, 86, 86, 86, 255, 7, 7, 7, 193, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 23, 23, 23, 223, 95, 89, 89, 255, 138, 18, 18, 255, 239, 6, 6, 255, 255, 6, 6, 255, 255, 6, 6, 255, 255, 6, 6, 255, 255, 6, 6, 255, 241, 6, 6, 255, 141, 17, 17, 255, 96, 88, 88, 255, 26, 26, 26, 226, 0, 0, 0, 47, 0, 0, 0, 0, 0, 0, 0, 0, 102, 102, 157, 86, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 172, 172, 221, 255, 215, 215, 255, 255, 215, 215, 255, 255, 215, 215, 255, 255, 215, 215, 255, 255, 215, 215, 255, 255, 216, 216, 255, 253, 108, 108, 128, 0, 68, 17, 43, 0, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 135, 33, 85, 255, 144, 50, 98, 255, 151, 62, 107, 255, 139, 40, 90, 255, 147, 54, 101, 255, 169, 94, 131, 255, 208, 168, 188, 255, 253, 251, 252, 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, 196, 145, 170, 255, 137, 35, 86, 255, 138, 38, 88, 255, 189, 132, 161, 255, 255, 255, 255, 255, 172, 101, 137, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 253, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 233, 222, 167, 255, 255, 254, 253, 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, 253, 251, 246, 255, 223, 207, 127, 255, 223, 207, 126, 255, 252, 251, 246, 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, 254, 253, 255, 233, 222, 168, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 255, 255, 255, 255, 253, 253, 254, 255, 255, 255, 255, 255, 253, 253, 254, 255, 255, 255, 255, 255, 253, 253, 254, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 255, 255, 255, 255, 253, 253, 254, 255, 255, 255, 255, 255, 253, 253, 254, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 253, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 172, 72, 155, 255, 239, 219, 235, 255, 254, 252, 253, 255, 243, 230, 241, 255, 255, 255, 255, 255, 222, 182, 215, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 253, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 64, 64, 0, 255, 255, 255, 34, 255, 255, 255, 76, 191, 191, 191, 2, 0, 0, 0, 0, 0, 0, 0, 0, 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, 64, 64, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 64, 64, 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, 27, 0, 0, 0, 51, 0, 0, 0, 51, 0, 0, 0, 51, 0, 0, 0, 51, 0, 0, 0, 51, 0, 0, 0, 51, 0, 0, 0, 51, 0, 0, 0, 51, 0, 0, 0, 28, 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, 26, 0, 0, 0, 26, 44, 0, 0, 30, 211, 4, 4, 76, 242, 4, 4, 106, 243, 4, 4, 107, 213, 4, 4, 78, 48, 0, 0, 31, 0, 0, 0, 26, 0, 0, 0, 26, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 102, 102, 157, 86, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 172, 172, 221, 255, 215, 215, 255, 255, 215, 215, 255, 255, 215, 215, 255, 255, 215, 215, 255, 255, 215, 215, 255, 255, 216, 216, 255, 253, 108, 108, 128, 0, 68, 17, 43, 0, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 135, 33, 85, 255, 136, 34, 85, 255, 144, 50, 97, 255, 177, 110, 144, 255, 192, 137, 164, 255, 182, 120, 151, 255, 155, 70, 112, 255, 136, 34, 85, 255, 154, 67, 110, 255, 234, 216, 225, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 247, 241, 244, 255, 144, 48, 96, 255, 175, 106, 140, 255, 182, 121, 152, 255, 140, 42, 91, 255, 243, 233, 238, 255, 172, 101, 137, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 253, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 229, 215, 150, 255, 232, 221, 165, 255, 232, 221, 165, 255, 232, 221, 165, 255, 232, 221, 165, 255, 232, 221, 165, 255, 232, 221, 165, 255, 232, 221, 165, 255, 232, 221, 165, 255, 225, 210, 135, 255, 221, 204, 119, 255, 221, 204, 119, 255, 225, 210, 135, 255, 232, 221, 165, 255, 232, 221, 165, 255, 232, 221, 165, 255, 232, 221, 165, 255, 232, 221, 165, 255, 232, 221, 165, 255, 232, 221, 165, 255, 232, 221, 165, 255, 229, 215, 150, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 255, 255, 255, 255, 253, 253, 254, 255, 255, 255, 255, 255, 253, 253, 254, 255, 255, 255, 255, 255, 253, 253, 254, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 255, 255, 255, 255, 253, 253, 254, 255, 255, 255, 255, 255, 253, 253, 254, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 253, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 179, 88, 164, 255, 227, 194, 221, 255, 230, 199, 224, 255, 230, 199, 224, 255, 235, 210, 230, 255, 255, 255, 255, 255, 199, 132, 188, 255, 170, 68, 153, 255, 218, 174, 211, 255, 255, 254, 254, 255, 230, 199, 224, 255, 230, 199, 224, 255, 230, 199, 224, 255, 230, 199, 224, 255, 230, 199, 224, 255, 230, 199, 224, 255, 230, 199, 224, 255, 230, 199, 224, 255, 230, 199, 224, 255, 230, 199, 224, 255, 230, 199, 224, 255, 230, 199, 224, 255, 227, 193, 221, 255, 178, 87, 163, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 253, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 128, 128, 0, 64, 64, 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, 64, 64, 64, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 64, 64, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 102, 102, 157, 86, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 171, 171, 220, 254, 215, 215, 255, 255, 215, 215, 255, 255, 215, 215, 255, 255, 215, 215, 255, 255, 215, 215, 255, 255, 216, 216, 255, 253, 108, 108, 128, 0, 68, 17, 43, 0, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 137, 37, 87, 255, 197, 147, 172, 255, 251, 247, 249, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 222, 193, 208, 255, 149, 58, 104, 255, 142, 46, 94, 255, 235, 217, 226, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 195, 144, 170, 255, 137, 36, 86, 255, 234, 217, 226, 255, 240, 228, 234, 255, 139, 39, 89, 255, 187, 128, 158, 255, 172, 101, 137, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 253, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 225, 210, 135, 255, 230, 217, 154, 255, 230, 217, 154, 255, 229, 217, 153, 255, 222, 206, 123, 255, 221, 204, 119, 255, 221, 204, 119, 255, 225, 210, 134, 255, 230, 217, 154, 255, 230, 217, 154, 255, 230, 217, 154, 255, 230, 217, 154, 255, 230, 217, 154, 255, 230, 217, 154, 255, 230, 217, 154, 255, 230, 217, 154, 255, 225, 210, 135, 255, 221, 204, 119, 255, 221, 204, 119, 255, 222, 206, 123, 255, 229, 217, 153, 255, 230, 217, 154, 255, 230, 217, 154, 255, 225, 210, 136, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 255, 255, 255, 255, 253, 253, 254, 255, 51, 34, 136, 255, 51, 34, 136, 255, 255, 255, 255, 255, 253, 253, 254, 255, 51, 34, 136, 255, 51, 34, 136, 255, 255, 255, 255, 255, 253, 253, 254, 255, 51, 34, 136, 255, 51, 34, 136, 255, 255, 255, 255, 255, 253, 253, 254, 255, 255, 255, 255, 255, 253, 253, 254, 255, 255, 255, 255, 255, 253, 253, 254, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 253, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 183, 97, 169, 255, 236, 212, 232, 255, 238, 218, 235, 255, 238, 218, 235, 255, 242, 226, 239, 255, 255, 255, 255, 255, 195, 123, 183, 255, 170, 68, 153, 255, 214, 164, 206, 255, 255, 255, 255, 255, 238, 218, 235, 255, 238, 218, 235, 255, 238, 218, 235, 255, 238, 218, 235, 255, 238, 218, 235, 255, 238, 218, 235, 255, 238, 218, 235, 255, 238, 218, 235, 255, 238, 218, 235, 255, 238, 218, 235, 255, 238, 218, 235, 255, 238, 218, 235, 255, 235, 212, 231, 255, 183, 96, 168, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 253, 0, 0, 0, 0, 191, 191, 191, 7, 255, 255, 255, 128, 255, 255, 255, 119, 64, 64, 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, 0, 0, 0, 0, 0, 128, 128, 128, 0, 255, 255, 255, 143, 255, 255, 255, 124, 64, 64, 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, 255, 255, 255, 8, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 95, 0, 0, 0, 149, 0, 0, 0, 175, 0, 0, 0, 201, 0, 0, 0, 201, 0, 0, 0, 175, 0, 0, 0, 149, 0, 0, 0, 97, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 102, 102, 157, 86, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 170, 170, 220, 255, 215, 215, 255, 255, 215, 215, 255, 255, 215, 215, 255, 255, 215, 215, 255, 255, 215, 215, 255, 255, 207, 207, 249, 204, 99, 99, 121, 0, 68, 17, 43, 0, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 35, 86, 255, 214, 179, 196, 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, 242, 232, 237, 255, 149, 58, 104, 255, 154, 68, 111, 255, 253, 251, 252, 255, 255, 255, 255, 255, 247, 240, 244, 255, 143, 47, 95, 255, 176, 109, 143, 255, 255, 255, 255, 255, 255, 255, 255, 255, 184, 124, 155, 255, 140, 41, 90, 255, 164, 86, 125, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 253, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 236, 226, 179, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 247, 244, 226, 255, 221, 204, 119, 255, 227, 213, 144, 255, 254, 253, 250, 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, 254, 253, 250, 255, 227, 214, 145, 255, 221, 204, 119, 255, 247, 244, 226, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 236, 227, 180, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 255, 255, 255, 255, 253, 253, 254, 255, 51, 34, 136, 255, 51, 34, 136, 255, 255, 255, 255, 255, 253, 253, 254, 255, 51, 34, 136, 255, 51, 34, 136, 255, 255, 255, 255, 255, 253, 253, 254, 255, 51, 34, 136, 255, 51, 34, 136, 255, 255, 255, 255, 255, 253, 253, 254, 255, 255, 255, 255, 255, 253, 253, 254, 255, 255, 255, 255, 255, 253, 253, 254, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 253, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 173, 75, 157, 255, 243, 228, 240, 255, 251, 247, 251, 255, 236, 212, 232, 255, 254, 254, 254, 255, 227, 194, 222, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 253, 0, 0, 0, 0, 255, 255, 255, 12, 255, 255, 255, 255, 255, 255, 255, 241, 128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 64, 64, 0, 255, 255, 255, 133, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 114, 64, 64, 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, 255, 255, 255, 12, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 1, 1, 1, 190, 56, 56, 56, 252, 135, 135, 135, 255, 197, 197, 197, 255, 223, 223, 223, 255, 249, 249, 249, 255, 249, 249, 249, 255, 223, 223, 223, 255, 197, 197, 197, 255, 137, 137, 137, 255, 58, 58, 58, 252, 1, 1, 1, 192, 0, 0, 0, 71, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 102, 102, 157, 86, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 170, 170, 220, 255, 215, 215, 255, 255, 215, 215, 255, 255, 215, 215, 255, 255, 215, 215, 255, 255, 215, 215, 255, 255, 198, 198, 243, 86, 0, 0, 0, 0, 68, 17, 43, 0, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 180, 116, 148, 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, 221, 192, 207, 255, 136, 34, 85, 255, 209, 170, 190, 255, 255, 255, 255, 255, 194, 143, 169, 255, 137, 36, 87, 255, 236, 219, 227, 255, 255, 255, 255, 255, 255, 255, 255, 255, 241, 230, 236, 255, 139, 40, 90, 255, 137, 37, 87, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 253, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 236, 226, 178, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 252, 251, 244, 255, 221, 204, 119, 255, 233, 223, 169, 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, 233, 223, 169, 255, 221, 204, 119, 255, 252, 251, 244, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 236, 227, 179, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 255, 255, 255, 255, 253, 253, 254, 255, 51, 34, 136, 255, 51, 34, 136, 255, 255, 255, 255, 255, 253, 253, 254, 255, 51, 34, 136, 255, 51, 34, 136, 255, 255, 255, 255, 255, 253, 253, 254, 255, 51, 34, 136, 255, 51, 34, 136, 255, 255, 255, 255, 255, 253, 253, 254, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 255, 255, 255, 255, 253, 253, 254, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 253, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 179, 87, 164, 255, 221, 181, 214, 255, 234, 210, 230, 255, 214, 165, 206, 255, 173, 75, 157, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 253, 0, 0, 0, 0, 255, 255, 255, 10, 255, 255, 255, 255, 255, 255, 255, 243, 191, 191, 191, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 64, 64, 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, 64, 64, 64, 0, 255, 255, 255, 124, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 105, 64, 64, 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, 255, 255, 255, 15, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41, 1, 1, 1, 184, 89, 89, 89, 255, 221, 221, 221, 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, 224, 224, 224, 255, 92, 92, 92, 255, 2, 2, 2, 187, 0, 0, 0, 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 102, 102, 157, 86, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 170, 170, 220, 255, 215, 215, 255, 255, 215, 215, 255, 255, 215, 215, 255, 255, 215, 215, 255, 255, 208, 208, 249, 221, 99, 99, 121, 0, 0, 0, 0, 0, 68, 17, 43, 0, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 233, 214, 223, 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, 155, 69, 112, 255, 149, 58, 103, 255, 171, 100, 136, 255, 140, 42, 91, 255, 178, 112, 146, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 186, 127, 157, 255, 136, 34, 85, 255, 135, 33, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 253, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 236, 226, 178, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 252, 251, 244, 255, 221, 204, 119, 255, 233, 223, 169, 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, 233, 223, 169, 255, 221, 204, 119, 255, 252, 251, 244, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 236, 227, 179, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 255, 255, 255, 255, 253, 253, 254, 255, 51, 34, 136, 255, 51, 34, 136, 255, 255, 255, 255, 255, 253, 253, 254, 255, 51, 34, 136, 255, 51, 34, 136, 255, 255, 255, 255, 255, 253, 253, 254, 255, 51, 34, 136, 255, 51, 34, 136, 255, 255, 255, 255, 255, 253, 253, 254, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 255, 255, 255, 255, 253, 253, 254, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 253, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 253, 0, 0, 0, 0, 255, 255, 255, 7, 255, 255, 255, 255, 255, 255, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 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, 64, 64, 64, 0, 255, 255, 255, 114, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 255, 255, 255, 96, 64, 64, 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, 255, 255, 255, 19, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 78, 38, 38, 38, 242, 203, 203, 203, 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, 206, 206, 206, 255, 41, 41, 41, 244, 1, 1, 1, 82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 102, 102, 157, 86, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 170, 170, 220, 255, 215, 215, 255, 255, 215, 215, 255, 255, 215, 215, 255, 255, 215, 215, 255, 255, 126, 126, 248, 101, 0, 0, 64, 0, 0, 0, 0, 0, 68, 17, 43, 0, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 142, 46, 94, 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, 183, 121, 152, 255, 136, 34, 85, 255, 135, 33, 85, 255, 138, 37, 87, 255, 237, 222, 230, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 243, 232, 238, 255, 140, 41, 91, 255, 135, 33, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 253, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 236, 226, 178, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 251, 249, 238, 255, 221, 204, 119, 255, 230, 217, 154, 255, 255, 254, 253, 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, 254, 254, 255, 230, 217, 155, 255, 221, 204, 119, 255, 251, 249, 238, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 236, 227, 179, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 255, 255, 255, 255, 253, 253, 254, 255, 255, 255, 255, 255, 253, 253, 254, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 255, 255, 255, 255, 253, 253, 254, 255, 255, 255, 255, 255, 253, 253, 254, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 255, 255, 255, 255, 253, 253, 254, 255, 255, 255, 255, 255, 253, 253, 254, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 253, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 253, 0, 0, 0, 0, 255, 255, 255, 5, 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, 126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 64, 64, 0, 255, 255, 255, 105, 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, 253, 255, 255, 255, 88, 64, 64, 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, 255, 255, 255, 23, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 64, 64, 0, 255, 255, 255, 15, 64, 64, 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, 110, 67, 67, 67, 252, 238, 238, 238, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 207, 207, 207, 255, 132, 132, 132, 255, 202, 202, 202, 255, 255, 255, 255, 255, 255, 255, 255, 255, 205, 205, 205, 255, 130, 130, 130, 255, 205, 205, 205, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 240, 240, 240, 255, 71, 71, 71, 252, 0, 0, 0, 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, 102, 102, 157, 86, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 170, 170, 220, 255, 215, 215, 255, 255, 215, 215, 255, 255, 215, 215, 255, 255, 210, 210, 251, 233, 115, 115, 167, 2, 0, 0, 0, 0, 0, 0, 0, 0, 68, 17, 43, 0, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 148, 57, 103, 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, 189, 133, 161, 255, 136, 34, 85, 255, 136, 34, 85, 255, 180, 116, 148, 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, 188, 131, 160, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 253, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 228, 215, 147, 255, 235, 225, 176, 255, 235, 225, 176, 255, 235, 225, 175, 255, 227, 213, 144, 255, 221, 204, 119, 255, 221, 204, 119, 255, 232, 220, 162, 255, 235, 225, 176, 255, 235, 225, 176, 255, 235, 225, 176, 255, 235, 225, 176, 255, 235, 225, 176, 255, 235, 225, 176, 255, 235, 225, 176, 255, 235, 225, 176, 255, 232, 220, 162, 255, 221, 204, 119, 255, 221, 204, 119, 255, 227, 213, 143, 255, 235, 225, 175, 255, 235, 225, 176, 255, 235, 225, 176, 255, 228, 215, 148, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 255, 255, 255, 255, 253, 253, 254, 255, 255, 255, 255, 255, 253, 253, 254, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 255, 255, 255, 255, 253, 253, 254, 255, 255, 255, 255, 255, 253, 253, 254, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 255, 255, 255, 255, 253, 253, 254, 255, 255, 255, 255, 255, 253, 253, 254, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 253, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 204, 142, 194, 255, 239, 219, 235, 255, 239, 219, 235, 255, 204, 143, 194, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 253, 0, 0, 0, 0, 255, 255, 255, 2, 255, 255, 255, 255, 255, 255, 255, 251, 191, 191, 191, 0, 191, 191, 191, 0, 255, 255, 255, 134, 255, 255, 255, 255, 255, 255, 255, 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, 64, 64, 64, 0, 255, 255, 255, 96, 255, 255, 255, 254, 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, 251, 255, 255, 255, 80, 64, 64, 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, 255, 255, 255, 27, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 191, 191, 191, 24, 255, 255, 255, 34, 64, 64, 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, 64, 64, 64, 0, 255, 255, 255, 70, 255, 255, 255, 189, 128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 71, 71, 71, 253, 251, 251, 251, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 187, 187, 187, 255, 55, 55, 55, 251, 0, 0, 0, 170, 0, 0, 0, 182, 175, 175, 175, 255, 255, 255, 255, 255, 255, 255, 255, 255, 180, 180, 180, 255, 0, 0, 0, 184, 0, 0, 0, 167, 52, 52, 52, 250, 183, 183, 183, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 252, 252, 252, 255, 75, 75, 75, 253, 0, 0, 0, 85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 102, 102, 157, 86, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 170, 170, 220, 255, 215, 215, 255, 255, 215, 215, 255, 255, 215, 215, 255, 255, 196, 196, 241, 116, 46, 46, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 17, 43, 0, 136, 34, 85, 255, 136, 34, 85, 255, 135, 33, 85, 255, 138, 38, 88, 255, 251, 248, 249, 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, 175, 107, 141, 255, 136, 34, 85, 255, 138, 38, 88, 255, 239, 224, 232, 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, 244, 234, 239, 255, 141, 43, 92, 255, 135, 33, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 253, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 255, 255, 255, 255, 253, 253, 254, 255, 51, 34, 136, 255, 51, 34, 136, 255, 255, 255, 255, 255, 253, 253, 254, 255, 255, 255, 255, 255, 253, 253, 254, 255, 51, 34, 136, 255, 51, 34, 136, 255, 255, 255, 255, 255, 253, 253, 254, 255, 255, 255, 255, 255, 253, 253, 254, 255, 255, 255, 255, 255, 253, 253, 254, 255, 255, 255, 255, 255, 253, 253, 254, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 253, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 199, 131, 188, 255, 255, 255, 255, 255, 236, 213, 232, 255, 236, 213, 232, 255, 255, 255, 255, 255, 199, 132, 188, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 253, 0, 0, 0, 0, 128, 128, 128, 0, 255, 255, 255, 255, 255, 255, 255, 253, 128, 128, 128, 0, 128, 128, 128, 0, 255, 255, 255, 133, 255, 255, 255, 255, 255, 255, 255, 120, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 0, 0, 0, 0, 64, 64, 64, 0, 255, 255, 255, 51, 255, 255, 255, 202, 255, 255, 255, 204, 255, 255, 255, 204, 255, 255, 255, 219, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 215, 255, 255, 255, 204, 255, 255, 255, 204, 255, 255, 255, 198, 255, 255, 255, 40, 0, 0, 0, 0, 0, 0, 0, 0, 191, 191, 191, 22, 255, 255, 255, 51, 255, 255, 255, 51, 255, 255, 255, 51, 255, 255, 255, 75, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 120, 255, 255, 255, 51, 255, 255, 255, 51, 255, 255, 255, 51, 255, 255, 255, 33, 64, 64, 64, 0, 0, 0, 0, 0, 255, 255, 255, 90, 255, 255, 255, 254, 255, 255, 255, 75, 0, 0, 0, 0, 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, 64, 64, 0, 255, 255, 255, 77, 255, 255, 255, 248, 255, 255, 255, 249, 191, 191, 191, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 39, 39, 39, 243, 239, 239, 239, 255, 255, 255, 255, 255, 255, 255, 255, 255, 250, 250, 250, 255, 103, 103, 103, 255, 0, 0, 0, 176, 0, 0, 0, 31, 0, 0, 0, 0, 0, 0, 0, 125, 175, 175, 175, 255, 255, 255, 255, 255, 255, 255, 255, 255, 180, 180, 180, 255, 0, 0, 0, 130, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 172, 97, 97, 97, 255, 249, 249, 249, 255, 255, 255, 255, 255, 255, 255, 255, 255, 242, 242, 242, 255, 42, 42, 42, 244, 0, 0, 0, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 102, 102, 157, 86, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 170, 170, 220, 255, 215, 215, 255, 255, 215, 215, 255, 255, 211, 211, 252, 242, 147, 147, 176, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 17, 43, 0, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 217, 184, 201, 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, 250, 246, 248, 255, 144, 48, 96, 255, 135, 33, 85, 255, 182, 119, 151, 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, 190, 134, 162, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 253, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 229, 217, 153, 255, 252, 251, 244, 255, 253, 252, 247, 255, 253, 252, 247, 255, 253, 252, 247, 255, 253, 252, 247, 255, 253, 252, 247, 255, 253, 252, 247, 255, 253, 252, 247, 255, 253, 252, 247, 255, 248, 245, 229, 255, 222, 205, 122, 255, 222, 205, 122, 255, 248, 245, 229, 255, 253, 252, 247, 255, 253, 252, 247, 255, 253, 252, 247, 255, 253, 252, 247, 255, 253, 252, 247, 255, 253, 252, 247, 255, 253, 252, 247, 255, 253, 252, 247, 255, 252, 251, 244, 255, 230, 217, 153, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 255, 255, 255, 255, 253, 253, 254, 255, 51, 34, 136, 255, 51, 34, 136, 255, 255, 255, 255, 255, 253, 253, 254, 255, 255, 255, 255, 255, 253, 253, 254, 255, 51, 34, 136, 255, 51, 34, 136, 255, 255, 255, 255, 255, 253, 253, 254, 255, 255, 255, 255, 255, 253, 253, 254, 255, 255, 255, 255, 255, 253, 253, 254, 255, 255, 255, 255, 255, 253, 253, 254, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 253, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 187, 104, 173, 255, 244, 231, 242, 255, 247, 236, 245, 255, 247, 236, 245, 255, 247, 236, 245, 255, 247, 236, 245, 255, 247, 236, 245, 255, 247, 236, 245, 255, 247, 236, 245, 255, 252, 248, 251, 255, 243, 229, 241, 255, 171, 70, 154, 255, 171, 69, 154, 255, 243, 228, 240, 255, 252, 248, 251, 255, 247, 236, 245, 255, 247, 236, 245, 255, 247, 236, 245, 255, 247, 236, 245, 255, 247, 236, 245, 255, 247, 236, 245, 255, 247, 236, 245, 255, 244, 230, 241, 255, 186, 103, 172, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 253, 0, 0, 0, 0, 128, 128, 128, 0, 255, 255, 255, 252, 255, 255, 255, 255, 191, 191, 191, 1, 128, 128, 128, 0, 255, 255, 255, 131, 255, 255, 255, 255, 255, 255, 255, 242, 255, 255, 255, 230, 255, 255, 255, 230, 255, 255, 255, 230, 255, 255, 255, 230, 255, 255, 255, 230, 255, 255, 255, 155, 128, 128, 128, 0, 0, 0, 0, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 255, 255, 255, 73, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 54, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 64, 64, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 191, 191, 191, 14, 255, 255, 255, 201, 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, 232, 255, 255, 255, 40, 0, 0, 0, 0, 64, 64, 64, 0, 255, 255, 255, 126, 255, 255, 255, 255, 255, 255, 255, 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, 64, 64, 64, 0, 255, 255, 255, 84, 255, 255, 255, 250, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 191, 210, 210, 210, 255, 255, 255, 255, 255, 255, 255, 255, 255, 249, 249, 249, 255, 70, 70, 70, 252, 0, 0, 0, 111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 125, 175, 175, 175, 255, 255, 255, 255, 255, 255, 255, 255, 255, 180, 180, 180, 255, 0, 0, 0, 130, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 106, 65, 65, 65, 251, 248, 248, 248, 255, 255, 255, 255, 255, 255, 255, 255, 255, 214, 214, 214, 255, 3, 3, 3, 195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 102, 102, 157, 86, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 170, 170, 220, 255, 215, 215, 255, 255, 215, 215, 255, 255, 201, 201, 244, 131, 48, 48, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 17, 43, 0, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 157, 73, 115, 255, 252, 249, 250, 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, 194, 143, 169, 255, 136, 34, 85, 255, 136, 34, 85, 255, 204, 160, 182, 255, 219, 189, 204, 255, 219, 189, 204, 255, 219, 189, 204, 255, 219, 189, 204, 255, 219, 189, 204, 255, 219, 189, 204, 255, 219, 189, 204, 255, 219, 189, 204, 255, 209, 170, 190, 255, 136, 34, 85, 255, 135, 33, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 253, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 236, 226, 178, 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, 227, 212, 142, 255, 226, 212, 141, 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, 236, 226, 179, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 255, 255, 255, 255, 253, 253, 254, 255, 51, 34, 136, 255, 51, 34, 136, 255, 255, 255, 255, 255, 253, 253, 254, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 255, 255, 255, 255, 253, 253, 254, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 255, 255, 255, 255, 253, 253, 254, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 255, 255, 255, 255, 253, 253, 254, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 253, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 176, 80, 160, 255, 219, 175, 211, 255, 221, 180, 214, 255, 221, 180, 214, 255, 221, 180, 214, 255, 221, 180, 214, 255, 221, 180, 214, 255, 221, 180, 214, 255, 221, 180, 214, 255, 241, 223, 238, 255, 249, 241, 248, 255, 178, 86, 163, 255, 178, 86, 163, 255, 249, 241, 247, 255, 241, 223, 238, 255, 221, 180, 214, 255, 221, 180, 214, 255, 221, 180, 214, 255, 221, 180, 214, 255, 221, 180, 214, 255, 221, 180, 214, 255, 221, 180, 214, 255, 218, 174, 211, 255, 175, 79, 159, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 253, 0, 0, 0, 0, 128, 128, 128, 0, 255, 255, 255, 250, 255, 255, 255, 255, 255, 255, 255, 3, 128, 128, 128, 0, 255, 255, 255, 130, 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, 173, 128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 69, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 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, 191, 191, 191, 17, 255, 255, 255, 208, 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, 236, 255, 255, 255, 46, 64, 64, 64, 0, 0, 0, 0, 0, 64, 64, 64, 0, 255, 255, 255, 119, 255, 255, 255, 255, 255, 255, 255, 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, 191, 191, 191, 12, 255, 255, 255, 139, 255, 255, 255, 255, 255, 255, 255, 236, 255, 255, 255, 119, 64, 64, 64, 0, 0, 0, 0, 0, 0, 0, 0, 74, 96, 96, 96, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 99, 99, 99, 255, 0, 0, 0, 109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 125, 105, 105, 105, 255, 153, 153, 153, 255, 153, 153, 153, 255, 108, 108, 108, 255, 0, 0, 0, 130, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 104, 93, 93, 93, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 101, 101, 101, 254, 0, 0, 0, 79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 108, 108, 161, 78, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 170, 170, 220, 255, 215, 215, 255, 255, 212, 212, 253, 248, 145, 145, 179, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 17, 43, 0, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 135, 33, 85, 255, 136, 34, 85, 255, 175, 107, 141, 255, 252, 249, 250, 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, 212, 175, 193, 255, 137, 36, 87, 255, 135, 33, 84, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 135, 33, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 253, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 236, 226, 178, 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, 227, 213, 142, 255, 226, 212, 141, 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, 236, 226, 179, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 255, 255, 255, 255, 253, 253, 254, 255, 51, 34, 136, 255, 51, 34, 136, 255, 255, 255, 255, 255, 253, 253, 254, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 255, 255, 255, 255, 253, 253, 254, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 255, 255, 255, 255, 253, 253, 254, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 255, 255, 255, 255, 253, 253, 254, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 253, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 185, 101, 171, 255, 252, 248, 251, 255, 253, 251, 253, 255, 253, 251, 253, 255, 252, 248, 251, 255, 185, 102, 171, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 253, 0, 0, 0, 0, 128, 128, 128, 0, 255, 255, 255, 247, 255, 255, 255, 255, 255, 255, 255, 6, 128, 128, 128, 0, 255, 255, 255, 130, 255, 255, 255, 255, 255, 255, 255, 136, 255, 255, 255, 26, 255, 255, 255, 26, 255, 255, 255, 26, 255, 255, 255, 26, 255, 255, 255, 26, 255, 255, 255, 17, 64, 64, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 65, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 46, 0, 0, 0, 0, 0, 0, 0, 0, 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, 191, 191, 21, 255, 255, 255, 213, 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, 240, 255, 255, 255, 51, 64, 64, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 79, 255, 255, 255, 255, 255, 255, 255, 99, 64, 64, 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, 128, 128, 128, 0, 255, 255, 255, 178, 255, 255, 255, 246, 255, 255, 255, 17, 255, 255, 255, 17, 64, 64, 64, 0, 0, 0, 0, 0, 5, 5, 5, 199, 226, 226, 226, 255, 255, 255, 255, 255, 255, 255, 255, 255, 182, 182, 182, 254, 1, 1, 1, 169, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50, 0, 0, 0, 102, 0, 0, 0, 102, 0, 0, 0, 102, 0, 0, 0, 102, 0, 0, 0, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 163, 176, 176, 176, 254, 255, 255, 255, 255, 255, 255, 255, 255, 229, 229, 229, 255, 7, 7, 7, 204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 28, 41, 0, 109, 109, 148, 22, 146, 146, 200, 98, 141, 141, 195, 135, 140, 140, 196, 207, 136, 136, 193, 250, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 170, 170, 220, 255, 215, 215, 255, 255, 205, 205, 247, 147, 49, 49, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 17, 43, 0, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 156, 72, 114, 255, 216, 182, 199, 255, 251, 247, 249, 255, 255, 255, 255, 255, 255, 255, 255, 255, 230, 209, 220, 255, 178, 112, 145, 255, 136, 34, 85, 255, 135, 33, 84, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 253, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 235, 225, 175, 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, 254, 254, 251, 255, 225, 210, 135, 255, 224, 209, 134, 255, 254, 254, 251, 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, 235, 225, 176, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 255, 255, 255, 255, 253, 253, 254, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 255, 255, 255, 255, 253, 253, 254, 255, 51, 34, 136, 255, 51, 34, 136, 255, 255, 255, 255, 255, 253, 253, 254, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 255, 255, 255, 255, 253, 253, 254, 255, 51, 34, 136, 255, 51, 34, 136, 255, 255, 255, 255, 255, 253, 253, 254, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 253, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 183, 95, 168, 255, 214, 164, 205, 255, 214, 164, 205, 255, 183, 95, 168, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 253, 0, 0, 0, 0, 128, 128, 128, 0, 255, 255, 255, 245, 255, 255, 255, 255, 255, 255, 255, 8, 128, 128, 128, 0, 255, 255, 255, 131, 255, 255, 255, 255, 255, 255, 255, 122, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 61, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 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, 0, 0, 0, 0, 0, 191, 191, 191, 25, 255, 255, 255, 219, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 243, 255, 255, 255, 58, 64, 64, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 191, 191, 191, 4, 255, 255, 255, 219, 255, 255, 255, 244, 255, 255, 255, 90, 191, 191, 191, 1, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 191, 191, 191, 11, 255, 255, 255, 137, 255, 255, 255, 255, 255, 255, 255, 152, 128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 69, 69, 69, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 48, 48, 48, 247, 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, 22, 42, 42, 42, 245, 254, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 74, 74, 74, 255, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 37, 50, 0, 73, 73, 101, 0, 71, 71, 98, 0, 149, 149, 200, 58, 142, 142, 197, 115, 140, 140, 193, 162, 139, 139, 195, 232, 135, 135, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 170, 170, 220, 255, 213, 213, 254, 253, 149, 149, 181, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 17, 43, 0, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 135, 33, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 148, 56, 102, 255, 140, 41, 91, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 253, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 224, 208, 130, 255, 238, 229, 187, 255, 241, 235, 201, 255, 241, 235, 201, 255, 241, 235, 201, 255, 241, 235, 201, 255, 241, 235, 201, 255, 241, 235, 201, 255, 241, 235, 201, 255, 241, 235, 201, 255, 234, 223, 171, 255, 221, 204, 119, 255, 221, 204, 119, 255, 234, 223, 171, 255, 241, 235, 201, 255, 241, 235, 201, 255, 241, 235, 201, 255, 241, 235, 201, 255, 241, 235, 201, 255, 241, 235, 201, 255, 241, 235, 201, 255, 241, 235, 201, 255, 238, 230, 187, 255, 224, 208, 130, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 255, 255, 255, 255, 253, 253, 254, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 255, 255, 255, 255, 253, 253, 254, 255, 51, 34, 136, 255, 51, 34, 136, 255, 255, 255, 255, 255, 253, 253, 254, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 255, 255, 255, 255, 253, 253, 254, 255, 51, 34, 136, 255, 51, 34, 136, 255, 255, 255, 255, 255, 253, 253, 254, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 253, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 253, 0, 0, 0, 0, 128, 128, 128, 0, 255, 255, 255, 242, 255, 255, 255, 255, 255, 255, 255, 11, 128, 128, 128, 0, 255, 255, 255, 133, 255, 255, 255, 255, 255, 255, 255, 174, 255, 255, 255, 102, 255, 255, 255, 102, 255, 255, 255, 102, 255, 255, 255, 102, 191, 191, 191, 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, 0, 255, 255, 255, 58, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 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, 191, 191, 191, 30, 255, 255, 255, 224, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 246, 255, 255, 255, 65, 64, 64, 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, 255, 255, 255, 38, 255, 255, 255, 221, 255, 255, 255, 255, 255, 255, 255, 230, 255, 255, 255, 178, 255, 255, 255, 153, 255, 255, 255, 147, 255, 255, 255, 176, 255, 255, 255, 238, 255, 255, 255, 255, 255, 255, 255, 187, 191, 191, 191, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 106, 147, 147, 147, 255, 255, 255, 255, 255, 255, 255, 255, 255, 196, 196, 196, 255, 0, 0, 0, 159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 190, 190, 190, 255, 255, 255, 255, 255, 255, 255, 255, 255, 152, 152, 152, 255, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 73, 98, 0, 72, 72, 100, 0, 111, 111, 149, 15, 146, 146, 201, 88, 127, 127, 175, 126, 141, 141, 196, 198, 137, 137, 194, 247, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 170, 170, 220, 255, 194, 194, 238, 163, 88, 88, 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 17, 43, 0, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 253, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 253, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 253, 0, 0, 0, 0, 128, 128, 128, 0, 255, 255, 255, 240, 255, 255, 255, 255, 255, 255, 255, 13, 128, 128, 128, 0, 255, 255, 255, 134, 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, 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, 255, 255, 255, 54, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 191, 191, 35, 255, 255, 255, 229, 255, 255, 255, 249, 255, 255, 255, 72, 64, 64, 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, 64, 64, 64, 0, 191, 191, 191, 8, 255, 255, 255, 100, 255, 255, 255, 178, 255, 255, 255, 212, 255, 255, 255, 239, 255, 255, 255, 251, 255, 255, 255, 223, 255, 255, 255, 189, 255, 255, 255, 85, 191, 191, 191, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 166, 215, 215, 215, 255, 255, 255, 255, 255, 255, 255, 255, 255, 121, 121, 121, 254, 0, 0, 0, 139, 0, 0, 0, 77, 0, 0, 0, 77, 0, 0, 0, 77, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 0, 0, 0, 102, 0, 0, 0, 102, 0, 0, 0, 102, 0, 0, 0, 102, 0, 0, 0, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 77, 0, 0, 0, 77, 0, 0, 0, 77, 0, 0, 0, 135, 116, 116, 116, 255, 255, 255, 255, 255, 255, 255, 255, 255, 220, 220, 220, 255, 0, 0, 0, 171, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 27, 36, 0, 74, 74, 100, 0, 71, 71, 98, 0, 147, 147, 200, 47, 143, 143, 198, 110, 140, 140, 194, 150, 140, 140, 195, 225, 135, 135, 192, 254, 134, 134, 191, 255, 134, 134, 191, 255, 169, 169, 219, 254, 172, 172, 233, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 17, 43, 0, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 253, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 253, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 253, 0, 0, 0, 0, 128, 128, 128, 0, 255, 255, 255, 143, 255, 255, 255, 153, 255, 255, 255, 9, 128, 128, 128, 0, 255, 255, 255, 81, 255, 255, 255, 153, 255, 255, 255, 153, 255, 255, 255, 153, 255, 255, 255, 153, 255, 255, 255, 153, 255, 255, 255, 153, 255, 255, 255, 41, 0, 0, 0, 0, 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, 36, 255, 255, 255, 179, 255, 255, 255, 179, 255, 255, 255, 179, 255, 255, 255, 179, 255, 255, 255, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 40, 255, 255, 255, 77, 64, 64, 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, 64, 64, 64, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 64, 64, 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, 191, 244, 244, 244, 255, 255, 255, 255, 255, 255, 255, 255, 255, 162, 162, 162, 255, 128, 128, 128, 255, 128, 128, 128, 255, 128, 128, 128, 255, 60, 60, 60, 255, 0, 0, 0, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 133, 111, 111, 111, 255, 153, 153, 153, 255, 153, 153, 153, 255, 114, 114, 114, 255, 0, 0, 0, 138, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 58, 58, 58, 255, 128, 128, 128, 255, 128, 128, 128, 255, 128, 128, 128, 255, 160, 160, 160, 255, 255, 255, 255, 255, 255, 255, 255, 255, 248, 248, 248, 255, 0, 0, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38, 38, 50, 0, 73, 73, 100, 0, 110, 110, 148, 9, 147, 147, 201, 80, 140, 140, 195, 122, 156, 156, 207, 130, 81, 81, 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, 68, 17, 43, 0, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 253, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 253, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 253, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 128, 0, 128, 128, 128, 0, 64, 64, 64, 0, 0, 0, 0, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 64, 64, 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, 64, 64, 64, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 64, 64, 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, 64, 64, 64, 0, 64, 64, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 12, 12, 215, 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, 120, 120, 120, 255, 0, 0, 0, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 133, 185, 185, 185, 255, 255, 255, 255, 255, 255, 255, 255, 255, 190, 190, 190, 255, 0, 0, 0, 138, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 115, 115, 115, 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, 15, 15, 15, 220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 76, 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, 68, 17, 43, 0, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 255, 136, 34, 85, 253, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 221, 204, 119, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 255, 51, 34, 136, 253, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 255, 170, 68, 153, 253, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 0, 0, 0, 26, 0, 0, 0, 26, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 54, 0, 0, 0, 85, 0, 0, 0, 84, 0, 0, 0, 51, 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, 16, 16, 33, 0, 48, 48, 100, 25, 103, 103, 172, 107, 102, 102, 147, 18, 68, 68, 98, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 22, 22, 226, 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, 120, 120, 120, 255, 0, 0, 0, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 133, 185, 185, 185, 255, 255, 255, 255, 255, 255, 255, 255, 255, 190, 190, 190, 255, 0, 0, 0, 138, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 115, 115, 115, 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, 27, 27, 27, 232, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 60, 26, 0, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 136, 204, 238, 253, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 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, 6, 6, 6, 222, 77, 77, 77, 255, 77, 77, 77, 255, 7, 7, 7, 227, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 120, 22, 22, 22, 233, 97, 97, 97, 255, 132, 132, 132, 254, 131, 131, 131, 255, 93, 93, 93, 255, 19, 19, 19, 229, 0, 0, 0, 112, 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, 16, 16, 33, 0, 46, 46, 98, 23, 69, 69, 143, 146, 75, 75, 156, 250, 77, 77, 159, 255, 85, 85, 164, 251, 109, 109, 179, 167, 134, 134, 195, 69, 65, 65, 96, 0, 34, 34, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 203, 251, 251, 251, 255, 255, 255, 255, 255, 255, 255, 255, 255, 236, 236, 236, 255, 230, 230, 230, 255, 230, 230, 230, 255, 230, 230, 230, 255, 108, 108, 108, 255, 0, 0, 0, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 133, 167, 167, 167, 255, 230, 230, 230, 255, 230, 230, 230, 255, 171, 171, 171, 255, 0, 0, 0, 138, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 104, 104, 104, 255, 230, 230, 230, 255, 230, 230, 230, 255, 230, 230, 230, 255, 235, 235, 235, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 254, 254, 255, 4, 4, 4, 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, 9, 0, 64, 0, 20, 1, 128, 0, 15, 1, 128, 0, 20, 0, 255, 13, 39, 3, 255, 60, 39, 2, 255, 105, 34, 1, 255, 74, 15, 0, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 60, 26, 0, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 23, 123, 56, 255, 98, 165, 120, 255, 98, 165, 120, 255, 23, 123, 56, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 136, 204, 238, 253, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 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, 19, 19, 19, 221, 255, 255, 255, 255, 255, 255, 255, 255, 22, 22, 22, 227, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 6, 6, 6, 202, 138, 138, 138, 255, 248, 248, 248, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 245, 245, 245, 255, 130, 130, 130, 255, 3, 3, 3, 194, 0, 0, 0, 19, 0, 0, 0, 0, 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, 96, 128, 0, 64, 192, 255, 40, 66, 191, 255, 77, 66, 191, 255, 70, 48, 143, 191, 17, 29, 92, 128, 0, 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, 16, 32, 0, 49, 49, 99, 23, 70, 70, 143, 144, 76, 76, 155, 249, 77, 77, 159, 255, 77, 77, 159, 255, 77, 77, 159, 255, 77, 77, 159, 255, 77, 77, 159, 255, 77, 77, 159, 255, 99, 99, 173, 224, 119, 119, 185, 118, 105, 105, 147, 18, 68, 68, 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 179, 229, 229, 229, 255, 255, 255, 255, 255, 255, 255, 255, 255, 97, 97, 97, 255, 0, 0, 0, 202, 0, 0, 0, 179, 0, 0, 0, 179, 0, 0, 0, 179, 0, 0, 0, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 93, 0, 0, 0, 179, 0, 0, 0, 179, 0, 0, 0, 179, 0, 0, 0, 179, 0, 0, 0, 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 0, 0, 0, 179, 0, 0, 0, 179, 0, 0, 0, 179, 0, 0, 0, 200, 91, 91, 91, 255, 255, 255, 255, 255, 255, 255, 255, 255, 234, 234, 234, 255, 0, 0, 0, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 2, 191, 24, 39, 2, 255, 133, 40, 3, 255, 178, 40, 4, 255, 223, 40, 4, 255, 255, 40, 4, 255, 255, 40, 4, 255, 255, 38, 2, 255, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 60, 26, 0, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 20, 121, 53, 255, 198, 222, 206, 255, 255, 255, 255, 255, 255, 255, 255, 255, 198, 222, 206, 255, 20, 121, 53, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 136, 204, 238, 253, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 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, 19, 19, 19, 221, 255, 255, 255, 255, 255, 255, 255, 255, 22, 22, 22, 227, 0, 0, 0, 0, 0, 0, 0, 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, 6, 6, 6, 202, 189, 189, 189, 255, 255, 255, 255, 255, 231, 231, 231, 255, 121, 121, 121, 255, 71, 71, 71, 255, 74, 74, 74, 255, 125, 125, 125, 255, 235, 235, 235, 255, 255, 255, 255, 255, 178, 178, 178, 254, 4, 4, 4, 192, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 48, 64, 0, 64, 191, 255, 55, 66, 192, 255, 205, 67, 193, 255, 255, 67, 193, 255, 255, 67, 193, 255, 255, 67, 193, 255, 250, 62, 189, 255, 153, 46, 142, 191, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58, 58, 91, 6, 70, 70, 141, 141, 75, 75, 155, 249, 77, 77, 159, 255, 77, 77, 159, 255, 77, 77, 159, 255, 77, 77, 159, 255, 77, 77, 159, 255, 77, 77, 159, 255, 77, 77, 159, 255, 77, 77, 159, 255, 77, 77, 159, 255, 77, 77, 159, 255, 84, 84, 164, 251, 112, 112, 179, 168, 139, 139, 171, 35, 0, 0, 0, 0, 0, 0, 0, 135, 176, 176, 176, 255, 255, 255, 255, 255, 255, 255, 255, 255, 167, 167, 167, 255, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 161, 161, 161, 254, 255, 255, 255, 255, 255, 255, 255, 255, 181, 181, 181, 255, 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, 0, 0, 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, 0, 191, 2, 40, 4, 255, 198, 40, 4, 255, 255, 40, 4, 255, 255, 40, 4, 255, 255, 40, 4, 255, 255, 40, 4, 255, 239, 35, 1, 255, 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, 9, 60, 26, 0, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 62, 145, 90, 255, 255, 255, 255, 255, 122, 179, 141, 255, 122, 179, 141, 255, 255, 255, 255, 255, 62, 145, 90, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 136, 204, 238, 253, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 78, 175, 159, 255, 141, 203, 193, 255, 141, 203, 193, 255, 78, 175, 158, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 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, 19, 19, 19, 221, 255, 255, 255, 255, 255, 255, 255, 255, 22, 22, 22, 227, 0, 0, 0, 0, 0, 0, 0, 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, 140, 140, 140, 255, 255, 255, 255, 255, 181, 181, 181, 254, 19, 19, 19, 226, 0, 0, 0, 89, 0, 0, 0, 26, 0, 0, 0, 29, 0, 0, 0, 94, 23, 23, 23, 231, 190, 190, 190, 254, 255, 255, 255, 255, 127, 127, 127, 255, 0, 0, 0, 109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 45, 64, 0, 63, 186, 255, 68, 67, 193, 255, 248, 67, 193, 255, 255, 67, 193, 255, 255, 67, 193, 255, 255, 67, 193, 255, 255, 67, 193, 255, 255, 67, 193, 255, 255, 66, 192, 255, 206, 49, 142, 191, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 91, 91, 141, 28, 126, 126, 183, 255, 99, 99, 167, 255, 78, 78, 158, 255, 77, 77, 159, 255, 77, 77, 159, 255, 77, 77, 159, 255, 77, 77, 159, 255, 77, 77, 159, 255, 77, 77, 159, 255, 77, 77, 159, 255, 77, 77, 159, 255, 77, 77, 159, 255, 123, 123, 190, 255, 202, 202, 245, 255, 218, 218, 255, 99, 0, 0, 0, 0, 0, 0, 0, 56, 98, 98, 98, 255, 255, 255, 255, 255, 255, 255, 255, 255, 245, 245, 245, 255, 18, 18, 18, 226, 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, 3, 15, 15, 15, 222, 242, 242, 242, 255, 255, 255, 255, 255, 255, 255, 255, 255, 102, 102, 102, 255, 0, 0, 0, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 2, 255, 43, 40, 4, 255, 249, 40, 4, 255, 255, 40, 4, 255, 255, 40, 4, 255, 255, 40, 4, 255, 255, 38, 3, 255, 176, 19, 1, 255, 35, 4, 0, 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, 9, 60, 26, 0, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 45, 135, 75, 255, 253, 254, 253, 255, 185, 215, 195, 255, 185, 215, 195, 255, 253, 254, 253, 255, 45, 135, 75, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 136, 204, 238, 253, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 70, 171, 154, 255, 141, 203, 193, 255, 238, 247, 246, 255, 255, 255, 255, 255, 255, 255, 255, 255, 238, 247, 246, 255, 140, 203, 193, 255, 70, 171, 154, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 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, 19, 19, 19, 221, 255, 255, 255, 255, 255, 255, 255, 255, 22, 22, 22, 227, 0, 0, 0, 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, 25, 25, 25, 234, 249, 249, 249, 255, 231, 231, 231, 255, 18, 18, 18, 225, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 24, 24, 24, 232, 237, 237, 237, 255, 244, 244, 244, 255, 17, 17, 17, 224, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 48, 143, 191, 12, 66, 193, 255, 232, 67, 193, 255, 255, 67, 193, 255, 255, 67, 193, 255, 255, 67, 193, 255, 255, 67, 193, 255, 255, 67, 193, 255, 255, 67, 193, 255, 255, 67, 193, 255, 255, 66, 192, 255, 144, 32, 96, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 91, 91, 141, 28, 134, 134, 191, 255, 134, 134, 191, 255, 128, 128, 185, 255, 103, 103, 169, 255, 80, 80, 158, 255, 77, 77, 159, 255, 77, 77, 159, 255, 77, 77, 159, 255, 77, 77, 159, 255, 77, 77, 159, 255, 102, 102, 176, 255, 181, 181, 231, 255, 215, 215, 255, 255, 215, 215, 255, 255, 218, 218, 255, 99, 0, 0, 0, 0, 0, 0, 0, 2, 22, 22, 22, 231, 249, 249, 249, 255, 255, 255, 255, 255, 255, 255, 255, 255, 130, 130, 130, 255, 0, 0, 0, 113, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 26, 0, 0, 0, 26, 0, 0, 0, 26, 0, 0, 0, 26, 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, 107, 123, 123, 123, 255, 255, 255, 255, 255, 255, 255, 255, 255, 251, 251, 251, 255, 25, 25, 25, 234, 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, 9, 0, 64, 0, 39, 3, 255, 129, 40, 4, 255, 255, 40, 4, 255, 255, 40, 4, 255, 255, 40, 4, 255, 255, 40, 4, 255, 255, 40, 4, 255, 239, 36, 1, 255, 71, 9, 0, 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, 9, 60, 26, 0, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 122, 179, 141, 255, 251, 253, 251, 255, 251, 253, 251, 255, 122, 179, 141, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 136, 204, 238, 253, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 159, 214, 241, 255, 160, 214, 241, 255, 158, 213, 241, 255, 140, 206, 239, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 113, 190, 178, 255, 219, 239, 235, 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, 219, 239, 235, 255, 113, 190, 178, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 0, 0, 0, 16, 7, 7, 7, 230, 26, 26, 26, 230, 26, 26, 26, 230, 26, 26, 26, 230, 26, 26, 26, 230, 43, 43, 43, 251, 255, 255, 255, 255, 255, 255, 255, 255, 46, 46, 46, 252, 26, 26, 26, 230, 26, 26, 26, 230, 26, 26, 26, 230, 26, 26, 26, 230, 7, 7, 7, 230, 0, 0, 0, 18, 0, 0, 0, 56, 101, 101, 101, 255, 255, 255, 255, 255, 119, 119, 119, 255, 0, 0, 0, 85, 0, 0, 0, 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, 133, 133, 133, 254, 255, 255, 255, 255, 87, 87, 87, 255, 0, 0, 0, 43, 0, 0, 0, 0, 0, 32, 64, 0, 41, 167, 255, 96, 67, 193, 255, 255, 67, 193, 255, 255, 67, 193, 255, 255, 67, 193, 255, 255, 67, 193, 255, 255, 67, 193, 255, 255, 67, 193, 255, 255, 67, 193, 255, 255, 67, 193, 255, 255, 67, 193, 255, 244, 46, 141, 191, 9, 0, 0, 0, 0, 0, 0, 0, 0, 91, 91, 141, 28, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 130, 130, 187, 255, 106, 106, 170, 255, 86, 86, 162, 252, 77, 77, 159, 255, 86, 86, 165, 255, 159, 159, 216, 255, 215, 215, 254, 255, 215, 215, 255, 255, 215, 215, 255, 255, 215, 215, 255, 255, 218, 218, 255, 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 124, 147, 147, 147, 255, 255, 255, 255, 255, 255, 255, 255, 255, 248, 248, 248, 255, 42, 42, 42, 243, 0, 0, 0, 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 125, 53, 53, 53, 255, 77, 77, 77, 255, 77, 77, 77, 255, 54, 54, 54, 255, 0, 0, 0, 130, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 37, 37, 37, 241, 246, 246, 246, 255, 255, 255, 255, 255, 255, 255, 255, 255, 152, 152, 152, 255, 0, 0, 0, 129, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 0, 191, 7, 40, 3, 255, 214, 40, 4, 255, 255, 40, 4, 255, 255, 40, 4, 255, 255, 40, 4, 255, 255, 40, 4, 255, 255, 40, 4, 255, 246, 35, 1, 255, 56, 8, 0, 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, 9, 60, 26, 0, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 190, 218, 199, 255, 190, 218, 199, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 136, 204, 238, 253, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 176, 221, 244, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 253, 254, 255, 255, 198, 231, 247, 255, 139, 205, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 91, 180, 165, 255, 192, 226, 220, 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, 192, 226, 220, 255, 91, 180, 165, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 0, 0, 0, 18, 68, 68, 68, 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, 73, 73, 73, 255, 0, 0, 0, 20, 0, 0, 0, 89, 138, 138, 138, 254, 255, 255, 255, 255, 69, 69, 69, 255, 0, 0, 0, 22, 0, 0, 0, 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, 83, 83, 83, 255, 255, 255, 255, 255, 126, 126, 126, 255, 0, 0, 0, 76, 0, 0, 0, 0, 31, 94, 128, 0, 64, 191, 255, 149, 67, 193, 255, 255, 67, 193, 255, 255, 67, 193, 255, 255, 67, 193, 255, 255, 67, 193, 255, 255, 67, 193, 255, 255, 67, 193, 255, 255, 67, 193, 255, 255, 67, 193, 255, 255, 67, 193, 255, 255, 66, 192, 255, 51, 0, 0, 0, 0, 0, 0, 0, 0, 91, 91, 141, 28, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 135, 135, 192, 254, 136, 136, 194, 252, 208, 208, 249, 255, 215, 215, 255, 255, 215, 215, 255, 255, 215, 215, 255, 255, 215, 215, 255, 255, 215, 215, 255, 255, 218, 218, 255, 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 22, 22, 22, 230, 243, 243, 243, 255, 255, 255, 255, 255, 255, 255, 255, 255, 218, 218, 218, 255, 19, 19, 19, 227, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 125, 175, 175, 175, 255, 255, 255, 255, 255, 255, 255, 255, 255, 180, 180, 180, 255, 0, 0, 0, 130, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 17, 17, 17, 224, 215, 215, 215, 255, 255, 255, 255, 255, 255, 255, 255, 255, 245, 245, 245, 255, 25, 25, 25, 233, 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, 64, 0, 24, 1, 255, 59, 40, 4, 255, 254, 39, 3, 255, 192, 38, 2, 255, 80, 40, 3, 255, 221, 40, 4, 255, 255, 40, 4, 255, 255, 40, 4, 255, 222, 27, 0, 191, 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, 9, 60, 26, 0, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 27, 124, 59, 255, 65, 146, 92, 255, 33, 128, 65, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 190, 218, 199, 255, 190, 218, 199, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 33, 128, 65, 255, 65, 146, 92, 255, 27, 124, 59, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 136, 204, 238, 253, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 159, 214, 241, 255, 160, 214, 241, 255, 172, 219, 243, 255, 209, 235, 248, 255, 255, 255, 255, 255, 204, 233, 248, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 76, 174, 158, 255, 164, 214, 206, 255, 249, 252, 252, 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, 249, 252, 252, 255, 164, 214, 205, 255, 76, 174, 157, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 0, 0, 0, 18, 68, 68, 68, 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, 73, 73, 73, 255, 0, 0, 0, 20, 0, 0, 0, 89, 138, 138, 138, 254, 255, 255, 255, 255, 68, 68, 68, 255, 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, 33, 80, 80, 80, 255, 255, 255, 255, 255, 126, 126, 126, 255, 0, 0, 0, 76, 0, 0, 0, 0, 31, 96, 128, 0, 65, 192, 255, 156, 67, 193, 255, 255, 67, 193, 255, 255, 67, 193, 255, 255, 67, 193, 255, 255, 67, 193, 255, 255, 67, 193, 255, 255, 67, 193, 255, 255, 67, 193, 255, 255, 67, 193, 255, 255, 67, 193, 255, 255, 66, 191, 255, 56, 0, 0, 0, 0, 0, 0, 0, 0, 91, 91, 141, 28, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 147, 147, 201, 255, 215, 215, 255, 255, 215, 215, 255, 255, 215, 215, 255, 255, 215, 215, 255, 255, 215, 215, 255, 255, 215, 215, 255, 255, 218, 218, 255, 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 96, 96, 96, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 213, 213, 213, 255, 31, 31, 31, 238, 0, 0, 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 125, 175, 175, 175, 255, 255, 255, 255, 255, 255, 255, 255, 255, 180, 180, 180, 255, 0, 0, 0, 130, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 28, 28, 28, 236, 209, 209, 209, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 102, 102, 102, 255, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 128, 0, 29, 2, 255, 150, 35, 2, 255, 104, 8, 0, 64, 0, 28, 2, 191, 20, 40, 4, 255, 225, 40, 4, 255, 255, 40, 4, 255, 255, 38, 2, 255, 119, 9, 0, 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, 9, 60, 26, 0, 17, 119, 51, 255, 17, 119, 51, 255, 50, 138, 80, 255, 230, 241, 234, 255, 255, 255, 255, 255, 242, 247, 244, 255, 73, 151, 100, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 190, 218, 199, 255, 190, 218, 199, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 73, 151, 100, 255, 242, 247, 244, 255, 255, 255, 255, 255, 230, 241, 234, 255, 50, 138, 80, 255, 17, 119, 51, 255, 17, 119, 51, 255, 136, 204, 238, 253, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 201, 232, 247, 255, 254, 255, 255, 255, 152, 211, 240, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 69, 170, 154, 255, 136, 201, 190, 255, 236, 246, 244, 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, 235, 246, 244, 255, 136, 201, 190, 255, 69, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 0, 0, 0, 16, 7, 7, 7, 230, 26, 26, 26, 230, 26, 26, 26, 230, 26, 26, 26, 230, 26, 26, 26, 230, 43, 43, 43, 251, 255, 255, 255, 255, 255, 255, 255, 255, 46, 46, 46, 252, 26, 26, 26, 230, 26, 26, 26, 230, 26, 26, 26, 230, 26, 26, 26, 230, 7, 7, 7, 230, 0, 0, 0, 18, 0, 0, 0, 56, 101, 101, 101, 255, 255, 255, 255, 255, 119, 119, 119, 255, 0, 0, 0, 85, 0, 0, 0, 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, 131, 131, 131, 254, 255, 255, 255, 255, 88, 88, 88, 255, 0, 0, 0, 43, 0, 0, 0, 0, 15, 44, 64, 0, 63, 186, 255, 113, 67, 193, 255, 255, 67, 193, 255, 255, 67, 193, 255, 255, 67, 193, 255, 255, 67, 193, 255, 255, 67, 193, 255, 255, 67, 193, 255, 255, 67, 193, 255, 255, 67, 193, 255, 255, 67, 193, 255, 251, 59, 173, 255, 18, 0, 0, 0, 0, 0, 0, 0, 0, 91, 91, 141, 28, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 147, 147, 201, 255, 215, 215, 255, 255, 215, 215, 255, 255, 215, 215, 255, 255, 215, 215, 255, 255, 215, 215, 255, 255, 215, 215, 255, 255, 218, 218, 255, 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 152, 143, 143, 143, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 238, 238, 238, 255, 97, 97, 97, 255, 2, 2, 2, 192, 0, 0, 0, 82, 0, 0, 0, 134, 175, 175, 175, 255, 255, 255, 255, 255, 255, 255, 255, 255, 180, 180, 180, 255, 0, 0, 0, 138, 0, 0, 0, 79, 1, 1, 1, 189, 94, 94, 94, 255, 236, 236, 236, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 148, 148, 148, 255, 0, 0, 0, 158, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 3, 3, 0, 255, 11, 11, 20, 64, 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, 23, 0, 191, 14, 29, 2, 191, 19, 0, 0, 0, 0, 0, 0, 64, 0, 24, 2, 255, 87, 40, 4, 255, 255, 40, 4, 255, 255, 39, 4, 255, 221, 5, 0, 191, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 191, 14, 14, 13, 191, 13, 13, 8, 0, 0, 0, 0, 9, 60, 26, 0, 17, 119, 51, 255, 17, 119, 51, 255, 158, 199, 171, 255, 242, 248, 244, 255, 97, 165, 120, 255, 224, 237, 228, 255, 191, 218, 200, 255, 51, 138, 80, 255, 178, 211, 189, 255, 184, 214, 194, 255, 184, 214, 194, 255, 169, 205, 181, 255, 22, 122, 55, 255, 51, 138, 80, 255, 178, 211, 189, 255, 235, 244, 238, 255, 235, 244, 238, 255, 169, 205, 181, 255, 22, 122, 55, 255, 51, 138, 80, 255, 178, 211, 189, 255, 184, 214, 194, 255, 184, 214, 194, 255, 169, 205, 181, 255, 22, 122, 55, 255, 191, 218, 200, 255, 224, 237, 228, 255, 97, 165, 120, 255, 242, 248, 244, 255, 157, 199, 171, 255, 17, 119, 51, 255, 17, 119, 51, 255, 136, 204, 238, 253, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 157, 213, 241, 255, 255, 255, 255, 255, 176, 221, 244, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 84, 177, 162, 255, 191, 226, 220, 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, 190, 226, 220, 255, 84, 177, 161, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 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, 19, 19, 19, 221, 255, 255, 255, 255, 255, 255, 255, 255, 22, 22, 22, 227, 0, 0, 0, 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, 25, 25, 25, 235, 249, 249, 249, 255, 231, 231, 231, 255, 18, 18, 18, 225, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 24, 24, 24, 232, 237, 237, 237, 255, 244, 244, 244, 255, 16, 16, 16, 224, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 59, 172, 255, 26, 67, 193, 255, 246, 67, 193, 255, 255, 67, 193, 255, 255, 67, 193, 255, 255, 67, 193, 255, 255, 67, 193, 255, 255, 67, 193, 255, 255, 67, 193, 255, 255, 67, 193, 255, 255, 66, 192, 255, 173, 31, 90, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 90, 90, 142, 27, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 147, 147, 201, 255, 215, 215, 255, 255, 215, 215, 255, 255, 215, 215, 255, 255, 215, 215, 255, 255, 215, 215, 255, 255, 215, 215, 255, 255, 218, 218, 255, 98, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 4, 4, 4, 190, 154, 154, 154, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 219, 219, 219, 255, 116, 116, 116, 255, 44, 44, 44, 255, 175, 175, 175, 255, 255, 255, 255, 255, 255, 255, 255, 255, 180, 180, 180, 255, 42, 42, 42, 255, 115, 115, 115, 255, 217, 217, 217, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 158, 158, 158, 255, 4, 4, 4, 194, 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, 255, 10, 10, 17, 255, 21, 21, 236, 255, 18, 18, 85, 64, 5, 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, 24, 0, 191, 4, 40, 4, 255, 246, 40, 4, 255, 255, 40, 4, 255, 255, 38, 3, 255, 51, 0, 0, 0, 0, 0, 0, 0, 0, 64, 5, 5, 0, 255, 20, 20, 46, 255, 21, 21, 217, 255, 20, 20, 86, 0, 0, 0, 0, 9, 60, 26, 0, 17, 119, 51, 255, 17, 119, 51, 255, 158, 199, 172, 255, 242, 248, 244, 255, 97, 165, 120, 255, 224, 237, 228, 255, 191, 219, 200, 255, 51, 138, 80, 255, 178, 211, 189, 255, 184, 214, 194, 255, 184, 214, 194, 255, 168, 205, 181, 255, 22, 122, 55, 255, 51, 138, 80, 255, 178, 211, 189, 255, 187, 216, 197, 255, 187, 216, 197, 255, 168, 205, 181, 255, 22, 122, 55, 255, 51, 138, 80, 255, 178, 211, 189, 255, 184, 214, 194, 255, 184, 214, 194, 255, 168, 205, 181, 255, 22, 122, 55, 255, 191, 219, 200, 255, 224, 237, 228, 255, 97, 165, 120, 255, 242, 248, 244, 255, 158, 199, 172, 255, 17, 119, 51, 255, 17, 119, 51, 255, 136, 204, 238, 253, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 159, 214, 241, 255, 160, 214, 241, 255, 160, 214, 241, 255, 157, 213, 241, 255, 140, 206, 239, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 140, 206, 239, 255, 255, 255, 255, 255, 192, 228, 246, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 81, 176, 160, 255, 107, 188, 174, 255, 68, 170, 153, 255, 113, 190, 177, 255, 219, 239, 235, 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, 219, 239, 235, 255, 112, 190, 177, 255, 68, 170, 153, 255, 107, 188, 174, 255, 82, 176, 161, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 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, 19, 19, 19, 221, 255, 255, 255, 255, 255, 255, 255, 255, 22, 22, 22, 227, 0, 0, 0, 0, 0, 0, 0, 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, 139, 139, 139, 255, 255, 255, 255, 255, 182, 182, 182, 254, 19, 19, 19, 227, 0, 0, 0, 90, 0, 0, 0, 28, 0, 0, 0, 30, 0, 0, 0, 96, 23, 23, 23, 232, 191, 191, 191, 254, 255, 255, 255, 255, 127, 127, 127, 255, 0, 0, 0, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 43, 64, 0, 65, 192, 255, 109, 67, 193, 255, 255, 67, 193, 255, 255, 67, 193, 255, 255, 67, 193, 255, 255, 67, 193, 255, 255, 67, 193, 255, 255, 67, 193, 255, 255, 67, 193, 255, 234, 49, 144, 191, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 30, 43, 0, 145, 145, 199, 86, 139, 139, 194, 227, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 147, 147, 201, 255, 215, 215, 255, 255, 215, 215, 255, 255, 215, 215, 255, 255, 215, 215, 255, 255, 214, 214, 254, 255, 205, 205, 247, 160, 146, 146, 175, 12, 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, 165, 111, 111, 111, 255, 252, 252, 252, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 252, 252, 252, 255, 116, 116, 116, 255, 0, 0, 0, 169, 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, 64, 5, 5, 0, 255, 21, 21, 105, 255, 22, 22, 255, 255, 22, 22, 255, 255, 21, 21, 136, 191, 3, 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, 19, 1, 128, 0, 39, 3, 255, 200, 40, 4, 255, 255, 40, 4, 255, 255, 24, 2, 255, 108, 0, 0, 64, 0, 128, 5, 5, 0, 255, 21, 21, 99, 255, 22, 22, 246, 255, 22, 22, 255, 255, 22, 22, 181, 128, 8, 8, 0, 9, 60, 26, 0, 17, 119, 51, 255, 17, 119, 51, 255, 51, 138, 80, 255, 230, 241, 234, 255, 255, 255, 255, 255, 242, 247, 244, 255, 73, 151, 100, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 73, 151, 100, 255, 242, 247, 244, 255, 255, 255, 255, 255, 230, 241, 234, 255, 50, 138, 80, 255, 17, 119, 51, 255, 17, 119, 51, 255, 136, 204, 238, 253, 136, 204, 238, 255, 136, 204, 238, 255, 176, 221, 244, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 240, 248, 253, 255, 156, 213, 241, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 237, 247, 252, 255, 221, 240, 250, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 161, 215, 242, 255, 214, 237, 249, 255, 145, 208, 239, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 96, 183, 168, 255, 254, 254, 254, 255, 184, 223, 216, 255, 86, 178, 163, 255, 70, 171, 154, 255, 142, 204, 193, 255, 239, 248, 246, 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, 239, 248, 246, 255, 141, 203, 193, 255, 70, 171, 154, 255, 86, 178, 163, 255, 185, 223, 217, 255, 254, 255, 254, 255, 97, 183, 169, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 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, 19, 19, 19, 221, 255, 255, 255, 255, 255, 255, 255, 255, 22, 22, 22, 227, 0, 0, 0, 0, 0, 0, 0, 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, 6, 6, 6, 202, 188, 188, 188, 255, 255, 255, 255, 255, 232, 232, 232, 255, 123, 123, 123, 255, 73, 73, 73, 255, 76, 76, 76, 255, 127, 127, 127, 254, 236, 236, 236, 255, 255, 255, 255, 255, 177, 177, 177, 254, 4, 4, 4, 192, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 48, 64, 0, 65, 191, 255, 103, 67, 193, 255, 242, 67, 193, 255, 255, 67, 193, 255, 255, 67, 193, 255, 255, 67, 193, 255, 255, 66, 193, 255, 206, 58, 172, 255, 40, 13, 38, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 103, 103, 138, 4, 143, 143, 198, 120, 136, 136, 193, 245, 134, 134, 191, 255, 134, 134, 191, 255, 134, 134, 191, 255, 147, 147, 201, 255, 215, 215, 255, 255, 215, 215, 255, 255, 215, 215, 255, 255, 210, 210, 251, 230, 196, 196, 240, 71, 49, 49, 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, 1, 0, 0, 0, 119, 43, 43, 43, 245, 179, 179, 179, 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, 182, 182, 182, 255, 45, 45, 45, 247, 0, 0, 0, 122, 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, 128, 10, 10, 0, 255, 22, 22, 199, 255, 22, 22, 255, 255, 22, 22, 255, 255, 22, 22, 255, 255, 21, 21, 186, 191, 15, 15, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 128, 0, 37, 3, 255, 153, 40, 4, 255, 255, 40, 4, 255, 255, 39, 2, 255, 151, 183, 10, 95, 10, 255, 16, 16, 161, 255, 22, 22, 255, 255, 22, 22, 255, 255, 22, 22, 255, 255, 22, 22, 251, 255, 10, 10, 24, 9, 60, 26, 0, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 27, 124, 59, 255, 65, 146, 92, 255, 33, 128, 65, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 33, 128, 65, 255, 65, 146, 92, 255, 27, 124, 59, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 136, 204, 238, 253, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 159, 214, 241, 255, 160, 214, 241, 255, 160, 214, 241, 255, 175, 221, 244, 255, 243, 250, 253, 255, 226, 243, 251, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 195, 229, 246, 255, 254, 255, 255, 255, 162, 215, 242, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 156, 213, 241, 255, 250, 253, 254, 255, 233, 246, 252, 255, 145, 208, 239, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 96, 183, 168, 255, 255, 255, 255, 255, 255, 255, 255, 255, 246, 251, 250, 255, 155, 209, 200, 255, 73, 172, 156, 255, 79, 175, 159, 255, 171, 217, 209, 255, 251, 253, 253, 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, 251, 253, 253, 255, 171, 217, 209, 255, 79, 175, 159, 255, 73, 172, 156, 255, 156, 210, 201, 255, 246, 251, 250, 255, 255, 255, 255, 255, 255, 255, 255, 255, 97, 183, 169, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 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, 19, 19, 19, 221, 255, 255, 255, 255, 255, 255, 255, 255, 22, 22, 22, 227, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 6, 6, 6, 201, 136, 136, 136, 255, 247, 247, 247, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 245, 245, 245, 255, 129, 129, 129, 255, 3, 3, 3, 193, 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, 16, 48, 64, 0, 48, 143, 191, 18, 66, 192, 255, 96, 64, 187, 255, 131, 65, 190, 255, 124, 65, 192, 255, 66, 31, 138, 191, 2, 0, 0, 0, 0, 0, 0, 0, 0, 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, 50, 0, 111, 111, 150, 20, 142, 142, 197, 154, 135, 135, 192, 253, 134, 134, 191, 255, 147, 147, 201, 255, 215, 215, 255, 255, 214, 214, 254, 255, 205, 205, 247, 162, 144, 144, 180, 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, 27, 0, 0, 0, 159, 57, 57, 57, 252, 144, 144, 144, 255, 224, 224, 224, 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, 226, 226, 226, 255, 146, 146, 146, 255, 60, 60, 60, 253, 0, 0, 0, 162, 0, 0, 0, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 18, 18, 39, 255, 22, 22, 255, 255, 22, 22, 255, 255, 22, 22, 255, 255, 22, 22, 255, 255, 22, 22, 255, 255, 21, 21, 214, 191, 16, 16, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39, 4, 255, 128, 40, 4, 255, 255, 40, 4, 255, 255, 64, 5, 228, 193, 255, 21, 21, 212, 255, 22, 22, 255, 255, 22, 22, 255, 255, 22, 22, 255, 255, 22, 22, 255, 255, 22, 22, 255, 255, 20, 20, 115, 72, 65, 31, 0, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 31, 127, 63, 255, 194, 220, 203, 255, 55, 140, 83, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 55, 141, 84, 255, 194, 220, 203, 255, 31, 127, 63, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 136, 204, 238, 253, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 198, 230, 247, 255, 252, 254, 255, 255, 139, 205, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 142, 207, 239, 255, 239, 248, 253, 255, 243, 250, 253, 255, 157, 213, 241, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 166, 217, 242, 255, 250, 253, 254, 255, 233, 245, 252, 255, 145, 208, 239, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 96, 183, 168, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 229, 243, 241, 255, 125, 196, 184, 255, 68, 170, 153, 255, 97, 183, 168, 255, 201, 230, 225, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 200, 230, 225, 255, 96, 183, 168, 255, 68, 170, 153, 255, 126, 196, 185, 255, 229, 243, 241, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 97, 183, 169, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 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, 6, 6, 6, 222, 77, 77, 77, 255, 77, 77, 77, 255, 7, 7, 7, 227, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 118, 20, 20, 20, 231, 93, 93, 93, 255, 130, 130, 130, 255, 129, 129, 129, 255, 89, 89, 89, 255, 18, 18, 18, 227, 0, 0, 0, 111, 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, 15, 44, 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, 31, 31, 44, 0, 125, 125, 177, 43, 139, 139, 195, 184, 147, 147, 200, 255, 210, 210, 251, 231, 196, 196, 243, 72, 48, 48, 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, 25, 0, 0, 0, 106, 0, 0, 0, 185, 30, 30, 30, 238, 57, 57, 57, 255, 83, 83, 83, 255, 84, 84, 84, 255, 58, 58, 58, 255, 32, 32, 32, 239, 0, 0, 0, 187, 0, 0, 0, 107, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 5, 5, 0, 255, 21, 21, 133, 255, 22, 22, 241, 255, 22, 22, 251, 255, 22, 22, 255, 255, 22, 22, 255, 255, 19, 19, 104, 191, 9, 9, 6, 64, 5, 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, 40, 4, 255, 128, 40, 4, 255, 255, 40, 4, 255, 255, 39, 3, 255, 188, 228, 16, 47, 32, 255, 21, 21, 192, 255, 22, 22, 255, 255, 22, 22, 255, 255, 22, 22, 255, 255, 22, 22, 251, 255, 22, 22, 210, 136, 67, 33, 0, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 57, 142, 85, 255, 248, 251, 249, 255, 98, 165, 120, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 98, 165, 120, 255, 248, 251, 249, 255, 57, 142, 85, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 136, 204, 238, 253, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 168, 218, 243, 255, 255, 255, 255, 255, 206, 234, 248, 255, 163, 216, 242, 255, 161, 215, 241, 255, 172, 219, 243, 255, 174, 220, 243, 255, 174, 220, 243, 255, 193, 228, 246, 255, 250, 253, 254, 255, 253, 254, 255, 255, 209, 235, 248, 255, 190, 227, 246, 255, 188, 226, 245, 255, 187, 226, 245, 255, 187, 226, 245, 255, 187, 226, 245, 255, 215, 237, 249, 255, 254, 255, 255, 255, 233, 245, 252, 255, 145, 208, 239, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 96, 183, 168, 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, 204, 232, 227, 255, 99, 184, 170, 255, 68, 170, 153, 255, 122, 194, 182, 255, 226, 242, 239, 255, 226, 242, 239, 255, 121, 194, 182, 255, 68, 170, 153, 255, 100, 184, 170, 255, 205, 232, 228, 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, 97, 183, 169, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 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, 61, 61, 61, 22, 61, 61, 61, 26, 61, 61, 61, 26, 61, 61, 61, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 64, 64, 0, 64, 64, 64, 0, 0, 0, 0, 2, 0, 0, 0, 50, 0, 0, 0, 83, 0, 0, 0, 81, 0, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 72, 100, 0, 155, 155, 210, 63, 146, 146, 176, 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, 96, 95, 58, 0, 98, 95, 60, 0, 98, 95, 60, 0, 98, 95, 60, 0, 98, 95, 60, 0, 98, 95, 60, 0, 98, 95, 60, 0, 98, 95, 60, 0, 98, 95, 60, 0, 98, 95, 60, 0, 45, 45, 26, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 35, 0, 0, 0, 36, 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, 64, 5, 5, 0, 255, 20, 20, 29, 255, 9, 9, 2, 255, 21, 21, 156, 255, 22, 22, 255, 255, 22, 22, 255, 255, 20, 20, 193, 191, 12, 12, 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, 40, 4, 255, 128, 40, 4, 255, 255, 40, 4, 255, 255, 39, 3, 255, 182, 210, 9, 61, 35, 255, 22, 22, 242, 255, 22, 22, 255, 255, 22, 22, 255, 255, 22, 22, 206, 255, 13, 13, 4, 255, 20, 20, 38, 166, 45, 19, 2, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 57, 142, 85, 255, 248, 251, 249, 255, 98, 165, 120, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 98, 165, 120, 255, 248, 251, 249, 255, 57, 142, 85, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 136, 204, 238, 253, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 203, 233, 247, 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, 180, 223, 244, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 96, 183, 168, 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, 252, 254, 254, 255, 174, 218, 211, 255, 81, 176, 160, 255, 70, 171, 154, 255, 69, 170, 153, 255, 81, 176, 160, 255, 175, 219, 212, 255, 252, 254, 254, 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, 97, 183, 169, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61, 61, 61, 0, 182, 182, 182, 15, 153, 153, 153, 102, 245, 245, 245, 171, 245, 245, 245, 202, 245, 245, 245, 201, 245, 245, 245, 171, 153, 153, 153, 101, 182, 182, 182, 15, 61, 61, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 64, 64, 0, 255, 255, 255, 83, 255, 255, 255, 79, 62, 62, 62, 0, 39, 39, 39, 0, 184, 184, 184, 30, 191, 191, 191, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 43, 64, 0, 42, 86, 128, 0, 80, 168, 255, 19, 88, 173, 255, 54, 87, 172, 255, 53, 80, 168, 255, 19, 40, 88, 121, 0, 21, 43, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 96, 58, 0, 194, 191, 118, 140, 196, 192, 120, 153, 196, 192, 120, 153, 196, 192, 120, 153, 196, 192, 120, 153, 196, 192, 120, 153, 196, 192, 120, 153, 196, 192, 120, 153, 196, 192, 120, 153, 195, 191, 120, 153, 188, 184, 112, 80, 48, 47, 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, 191, 191, 191, 7, 191, 191, 191, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 16, 16, 18, 255, 21, 21, 215, 255, 22, 22, 255, 255, 22, 22, 255, 255, 21, 21, 214, 255, 20, 20, 76, 191, 3, 3, 3, 128, 10, 10, 0, 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, 9, 0, 64, 0, 38, 3, 255, 131, 40, 4, 255, 255, 40, 4, 255, 255, 75, 6, 216, 210, 255, 22, 22, 229, 255, 22, 22, 255, 255, 22, 22, 255, 255, 22, 22, 245, 255, 11, 11, 52, 64, 0, 0, 0, 0, 0, 0, 0, 9, 60, 26, 0, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 56, 141, 85, 255, 248, 251, 249, 255, 97, 165, 120, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 97, 165, 120, 255, 248, 251, 249, 255, 56, 141, 85, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 136, 204, 238, 253, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 163, 215, 242, 255, 252, 254, 255, 255, 231, 245, 252, 255, 182, 224, 244, 255, 174, 220, 243, 255, 174, 220, 243, 255, 183, 224, 244, 255, 245, 250, 253, 255, 255, 255, 255, 255, 222, 241, 250, 255, 192, 228, 246, 255, 189, 227, 245, 255, 187, 226, 245, 255, 187, 226, 245, 255, 187, 226, 245, 255, 214, 237, 249, 255, 254, 255, 255, 255, 233, 246, 252, 255, 146, 208, 239, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 96, 183, 168, 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, 241, 249, 247, 255, 96, 182, 168, 255, 94, 182, 167, 255, 241, 249, 248, 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, 97, 183, 169, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 225, 167, 177, 255, 250, 239, 241, 255, 250, 239, 241, 255, 225, 167, 177, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 225, 167, 177, 255, 250, 239, 241, 255, 250, 239, 241, 255, 225, 167, 177, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 225, 167, 177, 255, 250, 239, 241, 255, 250, 239, 241, 255, 225, 167, 177, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 0, 0, 0, 0, 0, 0, 0, 0, 114, 114, 114, 0, 244, 244, 244, 102, 246, 246, 246, 233, 244, 244, 244, 167, 244, 244, 244, 92, 245, 245, 245, 55, 245, 245, 245, 55, 244, 244, 244, 92, 244, 244, 244, 168, 245, 245, 245, 232, 244, 244, 244, 100, 112, 112, 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 128, 0, 255, 255, 255, 199, 251, 251, 251, 247, 106, 106, 106, 180, 96, 96, 96, 179, 241, 241, 241, 234, 255, 255, 255, 202, 128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 21, 191, 0, 86, 172, 255, 84, 89, 174, 255, 201, 89, 174, 255, 255, 85, 179, 242, 255, 50, 226, 111, 255, 40, 240, 71, 255, 63, 208, 159, 203, 87, 171, 255, 83, 11, 21, 191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 98, 97, 60, 0, 218, 219, 152, 252, 243, 247, 187, 255, 243, 247, 187, 255, 243, 247, 187, 255, 243, 247, 187, 255, 243, 247, 187, 255, 243, 247, 187, 255, 243, 247, 187, 255, 243, 247, 187, 255, 239, 242, 181, 255, 204, 203, 132, 254, 193, 191, 119, 93, 49, 47, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 67, 255, 255, 255, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 14, 14, 26, 255, 20, 20, 197, 255, 22, 22, 255, 255, 22, 22, 255, 255, 22, 22, 255, 255, 21, 21, 230, 255, 21, 21, 172, 255, 13, 13, 117, 255, 20, 20, 63, 255, 20, 20, 42, 255, 20, 20, 26, 191, 14, 14, 10, 128, 10, 10, 0, 255, 19, 19, 20, 255, 21, 21, 34, 228, 17, 49, 51, 71, 5, 221, 187, 40, 4, 255, 255, 40, 4, 255, 255, 130, 11, 157, 255, 255, 22, 22, 255, 255, 22, 22, 255, 255, 22, 22, 236, 255, 17, 17, 67, 64, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 60, 26, 0, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 24, 123, 57, 255, 144, 192, 160, 255, 39, 132, 70, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 39, 132, 70, 255, 144, 192, 160, 255, 23, 123, 56, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 136, 204, 238, 253, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 185, 225, 245, 255, 255, 255, 255, 255, 152, 211, 240, 255, 136, 204, 238, 255, 136, 204, 238, 255, 138, 205, 238, 255, 226, 243, 251, 255, 250, 253, 254, 255, 173, 220, 243, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 165, 216, 242, 255, 250, 253, 254, 255, 234, 246, 252, 255, 146, 208, 239, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 96, 183, 168, 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, 119, 193, 181, 255, 118, 193, 180, 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, 97, 183, 169, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 216, 137, 150, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 216, 137, 150, 255, 204, 102, 119, 255, 204, 102, 119, 255, 216, 137, 150, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 216, 137, 150, 255, 204, 102, 119, 255, 204, 102, 119, 255, 216, 137, 150, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 216, 137, 150, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 0, 0, 0, 0, 114, 114, 114, 0, 237, 237, 237, 144, 246, 246, 246, 209, 242, 242, 242, 41, 120, 120, 120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 120, 120, 120, 0, 242, 242, 242, 42, 246, 246, 246, 210, 235, 235, 235, 142, 112, 112, 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 128, 0, 255, 255, 255, 168, 255, 255, 255, 255, 241, 241, 241, 217, 243, 243, 243, 221, 255, 255, 255, 255, 255, 255, 255, 152, 128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 96, 128, 0, 64, 191, 255, 31, 66, 191, 255, 71, 65, 192, 255, 61, 47, 144, 191, 11, 32, 96, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61, 128, 191, 9, 85, 171, 255, 170, 89, 174, 255, 255, 89, 174, 255, 255, 89, 174, 255, 255, 59, 215, 141, 255, 30, 255, 32, 255, 30, 255, 32, 255, 30, 255, 32, 255, 75, 192, 204, 255, 88, 173, 255, 168, 61, 128, 191, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 98, 97, 60, 0, 218, 219, 152, 252, 243, 247, 187, 255, 243, 247, 187, 255, 243, 247, 187, 255, 243, 247, 187, 255, 243, 247, 187, 255, 243, 247, 187, 255, 243, 247, 187, 255, 243, 247, 187, 255, 239, 242, 181, 255, 217, 218, 151, 255, 212, 212, 143, 254, 194, 190, 115, 87, 48, 48, 28, 0, 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, 128, 128, 0, 255, 255, 255, 137, 255, 255, 255, 143, 128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 11, 11, 5, 255, 20, 20, 110, 255, 22, 22, 235, 255, 22, 22, 255, 255, 22, 22, 255, 255, 22, 22, 255, 255, 22, 22, 255, 255, 22, 22, 255, 255, 22, 22, 255, 255, 22, 22, 255, 255, 22, 22, 255, 255, 22, 22, 255, 255, 22, 22, 255, 255, 22, 22, 255, 255, 22, 22, 255, 93, 8, 197, 255, 40, 4, 255, 255, 40, 4, 255, 255, 157, 13, 127, 255, 255, 22, 22, 254, 255, 19, 19, 166, 191, 15, 15, 29, 64, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 60, 26, 0, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 136, 204, 238, 253, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 211, 236, 249, 255, 244, 250, 253, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 181, 223, 244, 255, 255, 255, 255, 255, 178, 222, 244, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 156, 212, 241, 255, 250, 253, 254, 255, 234, 246, 252, 255, 146, 208, 239, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 96, 183, 168, 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, 119, 193, 181, 255, 118, 193, 180, 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, 97, 183, 169, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 227, 170, 179, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 227, 170, 179, 255, 204, 102, 119, 255, 204, 102, 119, 255, 227, 170, 179, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 227, 170, 179, 255, 204, 102, 119, 255, 204, 102, 119, 255, 227, 170, 179, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 227, 170, 179, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 61, 61, 61, 0, 245, 245, 245, 106, 245, 245, 245, 207, 183, 183, 183, 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, 184, 184, 184, 13, 245, 245, 245, 208, 245, 245, 245, 104, 61, 61, 61, 0, 191, 191, 191, 49, 255, 255, 255, 124, 255, 255, 255, 102, 255, 255, 255, 188, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 225, 225, 225, 101, 165, 165, 165, 26, 165, 165, 165, 26, 126, 126, 126, 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, 16, 47, 64, 0, 64, 191, 255, 50, 66, 193, 255, 196, 67, 193, 255, 255, 67, 193, 255, 255, 67, 193, 255, 255, 67, 193, 255, 247, 66, 192, 255, 145, 47, 143, 191, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50, 101, 191, 1, 87, 172, 255, 171, 86, 179, 243, 255, 63, 209, 158, 255, 63, 209, 159, 255, 86, 178, 244, 255, 53, 222, 121, 255, 30, 255, 32, 255, 30, 255, 32, 255, 30, 254, 34, 255, 65, 206, 167, 255, 89, 174, 255, 255, 85, 171, 255, 169, 49, 100, 191, 1, 0, 0, 0, 0, 0, 0, 0, 0, 98, 97, 60, 0, 218, 219, 152, 252, 240, 243, 187, 255, 231, 235, 187, 255, 231, 235, 187, 255, 231, 235, 187, 255, 231, 235, 187, 255, 231, 235, 187, 255, 231, 235, 187, 255, 239, 243, 187, 255, 243, 247, 187, 255, 230, 231, 168, 255, 229, 230, 167, 255, 201, 199, 128, 179, 97, 96, 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, 0, 128, 128, 128, 0, 255, 255, 255, 207, 255, 255, 255, 225, 191, 191, 191, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 5, 5, 0, 191, 13, 13, 8, 255, 21, 21, 90, 255, 21, 21, 179, 255, 22, 22, 242, 255, 22, 22, 255, 255, 22, 22, 255, 255, 22, 22, 255, 255, 22, 22, 255, 255, 22, 22, 255, 255, 22, 22, 255, 255, 22, 22, 255, 255, 22, 22, 255, 255, 22, 22, 255, 66, 6, 226, 255, 40, 4, 255, 255, 40, 4, 255, 255, 157, 12, 127, 158, 255, 19, 19, 39, 128, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 60, 26, 0, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 31, 127, 63, 255, 194, 220, 203, 255, 55, 140, 83, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 55, 141, 84, 255, 194, 220, 203, 255, 31, 127, 63, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 136, 204, 238, 253, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 159, 214, 241, 255, 160, 214, 241, 255, 160, 214, 241, 255, 160, 214, 241, 255, 163, 216, 242, 255, 193, 228, 246, 255, 253, 254, 255, 255, 205, 234, 248, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 228, 244, 251, 255, 232, 245, 252, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 161, 215, 242, 255, 214, 237, 249, 255, 146, 208, 239, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 96, 183, 168, 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, 119, 193, 181, 255, 118, 193, 180, 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, 97, 183, 169, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 216, 137, 150, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 216, 137, 150, 255, 204, 102, 119, 255, 204, 102, 119, 255, 216, 137, 150, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 216, 137, 150, 255, 204, 102, 119, 255, 204, 102, 119, 255, 216, 137, 150, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 216, 137, 150, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 184, 184, 184, 20, 246, 246, 246, 234, 238, 238, 238, 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, 239, 239, 239, 37, 246, 246, 246, 234, 248, 248, 248, 19, 255, 255, 255, 134, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 231, 231, 231, 255, 192, 192, 192, 93, 255, 255, 255, 160, 255, 255, 255, 255, 253, 253, 253, 255, 244, 244, 244, 255, 235, 235, 235, 255, 169, 169, 169, 194, 84, 84, 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 48, 64, 0, 63, 189, 255, 63, 67, 193, 255, 246, 67, 193, 255, 255, 67, 193, 255, 255, 67, 193, 255, 255, 67, 193, 255, 255, 67, 193, 255, 255, 67, 193, 255, 255, 66, 192, 255, 200, 38, 133, 191, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 39, 64, 0, 84, 166, 255, 89, 89, 174, 255, 255, 42, 237, 81, 255, 30, 255, 32, 255, 30, 255, 32, 255, 43, 236, 83, 255, 43, 236, 83, 255, 30, 255, 32, 255, 30, 255, 32, 255, 30, 254, 34, 255, 81, 183, 228, 255, 89, 174, 255, 255, 89, 174, 255, 255, 87, 171, 255, 87, 21, 43, 64, 0, 0, 0, 0, 0, 98, 97, 60, 0, 218, 219, 152, 252, 230, 233, 186, 255, 197, 197, 185, 255, 197, 197, 185, 255, 197, 197, 185, 255, 197, 197, 185, 255, 197, 197, 185, 255, 197, 197, 185, 255, 210, 212, 186, 255, 243, 247, 187, 255, 243, 247, 187, 255, 243, 247, 187, 255, 204, 203, 133, 178, 97, 96, 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, 0, 255, 255, 255, 23, 255, 255, 255, 254, 255, 255, 255, 255, 255, 255, 255, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 10, 10, 0, 191, 12, 12, 4, 255, 20, 20, 49, 255, 21, 21, 89, 255, 21, 21, 123, 255, 21, 21, 147, 255, 21, 21, 153, 255, 20, 20, 155, 255, 21, 21, 153, 255, 19, 19, 145, 180, 14, 102, 133, 41, 4, 254, 255, 40, 4, 255, 255, 40, 4, 255, 252, 19, 0, 255, 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, 9, 60, 26, 0, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 57, 142, 85, 255, 248, 251, 249, 255, 98, 165, 120, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 98, 165, 120, 255, 248, 251, 249, 255, 57, 142, 85, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 136, 204, 238, 253, 136, 204, 238, 255, 136, 204, 238, 255, 176, 221, 244, 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, 218, 239, 250, 255, 142, 207, 239, 255, 136, 204, 238, 255, 136, 204, 238, 255, 138, 205, 238, 255, 254, 254, 255, 255, 197, 230, 247, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 96, 183, 168, 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, 119, 193, 181, 255, 118, 193, 180, 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, 97, 183, 169, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 225, 167, 177, 255, 250, 239, 241, 255, 250, 239, 241, 255, 225, 167, 177, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 225, 167, 177, 255, 250, 239, 241, 255, 250, 239, 241, 255, 225, 167, 177, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 225, 167, 177, 255, 250, 239, 241, 255, 250, 239, 241, 255, 225, 167, 177, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 243, 243, 243, 114, 243, 243, 243, 156, 119, 119, 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, 119, 119, 119, 0, 244, 244, 244, 157, 241, 241, 241, 112, 189, 189, 189, 3, 234, 234, 234, 108, 255, 255, 255, 241, 255, 255, 255, 255, 154, 154, 154, 245, 68, 68, 68, 8, 190, 190, 190, 5, 250, 250, 250, 254, 255, 255, 255, 255, 255, 255, 255, 255, 252, 252, 252, 203, 172, 172, 172, 208, 84, 84, 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 143, 191, 10, 66, 193, 255, 228, 67, 193, 255, 255, 67, 193, 255, 255, 67, 193, 255, 255, 67, 193, 255, 255, 67, 193, 255, 255, 67, 193, 255, 255, 67, 193, 255, 255, 67, 193, 255, 255, 50, 176, 255, 140, 16, 80, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 86, 128, 0, 88, 174, 255, 208, 87, 176, 248, 255, 30, 255, 33, 255, 30, 255, 32, 255, 30, 255, 32, 255, 29, 255, 32, 255, 30, 255, 32, 255, 30, 255, 32, 255, 29, 255, 31, 255, 29, 255, 31, 255, 34, 250, 46, 255, 50, 227, 109, 255, 85, 180, 239, 255, 88, 173, 255, 206, 43, 86, 128, 0, 0, 0, 0, 0, 98, 97, 60, 0, 218, 219, 152, 252, 243, 247, 187, 255, 243, 247, 187, 255, 243, 247, 187, 255, 243, 247, 187, 255, 243, 247, 187, 255, 243, 247, 187, 255, 243, 247, 187, 255, 243, 247, 187, 255, 243, 247, 187, 255, 243, 247, 187, 255, 243, 247, 187, 255, 204, 203, 133, 178, 97, 96, 59, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 255, 255, 255, 91, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 135, 191, 191, 191, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 10, 10, 0, 128, 10, 74, 0, 128, 9, 9, 0, 128, 10, 10, 0, 128, 8, 72, 0, 24, 2, 255, 96, 40, 4, 255, 255, 40, 4, 255, 255, 39, 3, 255, 199, 14, 1, 128, 0, 0, 0, 0, 0, 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, 60, 26, 0, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 57, 142, 85, 255, 248, 251, 249, 255, 98, 165, 120, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 98, 165, 120, 255, 248, 251, 249, 255, 57, 142, 85, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 136, 204, 238, 253, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 159, 214, 241, 255, 160, 214, 241, 255, 160, 214, 241, 255, 160, 214, 241, 255, 160, 214, 241, 255, 150, 210, 240, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 151, 210, 240, 255, 255, 255, 255, 255, 182, 224, 245, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 83, 177, 161, 255, 254, 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, 119, 193, 181, 255, 118, 193, 180, 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, 254, 255, 255, 255, 84, 177, 162, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 245, 245, 245, 186, 243, 243, 243, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 244, 244, 244, 77, 246, 246, 246, 184, 0, 0, 0, 167, 0, 0, 0, 210, 167, 167, 167, 245, 255, 255, 255, 255, 197, 197, 197, 253, 137, 137, 137, 13, 255, 255, 255, 73, 255, 255, 255, 255, 243, 243, 243, 251, 251, 251, 251, 62, 170, 170, 170, 8, 169, 169, 169, 208, 84, 84, 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 41, 120, 255, 94, 67, 193, 255, 255, 67, 193, 255, 255, 67, 193, 255, 255, 67, 193, 255, 255, 106, 206, 255, 255, 76, 196, 255, 255, 67, 193, 255, 255, 67, 193, 255, 255, 67, 193, 255, 255, 66, 193, 255, 242, 45, 141, 191, 8, 0, 0, 0, 0, 0, 0, 0, 0, 87, 171, 255, 29, 89, 174, 255, 255, 89, 174, 255, 255, 52, 225, 115, 255, 30, 255, 32, 255, 30, 255, 32, 255, 30, 254, 33, 255, 30, 255, 32, 255, 30, 255, 32, 255, 29, 255, 32, 255, 30, 255, 32, 255, 30, 255, 32, 255, 30, 255, 32, 255, 49, 228, 104, 255, 89, 174, 255, 255, 85, 173, 255, 27, 0, 0, 0, 0, 98, 97, 60, 0, 218, 219, 152, 252, 241, 245, 187, 255, 237, 241, 187, 255, 237, 241, 187, 255, 237, 241, 187, 255, 237, 241, 187, 255, 237, 241, 187, 255, 237, 241, 187, 255, 237, 241, 187, 255, 237, 241, 187, 255, 237, 241, 187, 255, 241, 245, 187, 255, 204, 203, 133, 178, 161, 160, 123, 0, 255, 255, 255, 31, 255, 255, 255, 162, 255, 255, 255, 179, 255, 255, 255, 179, 255, 255, 255, 179, 255, 255, 255, 179, 255, 255, 255, 220, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 235, 255, 255, 255, 179, 255, 255, 255, 182, 255, 255, 255, 204, 255, 255, 255, 204, 255, 255, 255, 197, 255, 255, 255, 40, 64, 64, 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, 23, 0, 191, 14, 19, 1, 255, 31, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 191, 0, 39, 3, 255, 200, 40, 4, 255, 255, 40, 4, 255, 255, 38, 2, 255, 106, 9, 0, 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, 9, 60, 26, 0, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 56, 141, 85, 255, 248, 251, 249, 255, 97, 165, 120, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 97, 165, 120, 255, 248, 251, 249, 255, 56, 141, 85, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 136, 204, 238, 253, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 176, 221, 244, 255, 255, 255, 255, 255, 160, 215, 241, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 184, 223, 216, 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, 119, 193, 181, 255, 118, 193, 180, 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, 184, 223, 216, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 246, 246, 246, 219, 244, 244, 244, 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, 244, 244, 244, 37, 246, 246, 246, 216, 0, 0, 0, 188, 168, 168, 168, 131, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 253, 253, 253, 254, 255, 255, 255, 38, 153, 153, 153, 8, 169, 169, 169, 208, 159, 159, 159, 0, 128, 128, 128, 0, 128, 128, 128, 0, 64, 64, 64, 0, 0, 0, 0, 0, 31, 94, 128, 0, 64, 191, 255, 149, 67, 193, 255, 255, 67, 193, 255, 255, 67, 193, 255, 255, 160, 224, 255, 255, 255, 255, 255, 255, 231, 247, 255, 255, 69, 194, 255, 255, 67, 193, 255, 255, 67, 193, 255, 255, 67, 193, 255, 255, 65, 192, 255, 49, 0, 0, 0, 0, 0, 0, 0, 0, 88, 173, 255, 64, 89, 174, 255, 255, 89, 174, 255, 255, 67, 203, 173, 255, 30, 255, 32, 255, 30, 255, 32, 255, 30, 255, 32, 255, 30, 255, 32, 255, 30, 255, 32, 255, 30, 255, 32, 255, 30, 255, 32, 255, 30, 255, 33, 255, 30, 255, 32, 255, 31, 253, 37, 255, 88, 175, 251, 255, 88, 173, 255, 61, 0, 0, 0, 0, 98, 97, 60, 0, 218, 219, 152, 252, 226, 229, 186, 255, 191, 191, 185, 255, 191, 191, 185, 255, 191, 191, 185, 255, 191, 191, 185, 255, 191, 191, 185, 255, 191, 191, 185, 255, 191, 191, 185, 255, 191, 191, 185, 255, 191, 191, 185, 255, 229, 233, 186, 255, 204, 203, 133, 178, 97, 96, 59, 0, 64, 64, 64, 0, 191, 191, 191, 25, 255, 255, 255, 177, 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, 171, 191, 191, 191, 17, 64, 64, 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, 27, 0, 191, 7, 39, 3, 255, 189, 40, 3, 255, 93, 0, 0, 0, 0, 9, 0, 64, 0, 38, 2, 255, 97, 40, 4, 255, 255, 40, 4, 255, 255, 40, 4, 255, 238, 27, 0, 191, 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, 9, 60, 26, 0, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 24, 123, 57, 255, 144, 192, 160, 255, 39, 132, 70, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 39, 132, 70, 255, 144, 192, 160, 255, 23, 123, 56, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 136, 204, 238, 253, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 143, 207, 239, 255, 237, 247, 252, 255, 239, 248, 253, 255, 139, 205, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 69, 170, 154, 255, 136, 201, 190, 255, 236, 246, 244, 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, 119, 193, 181, 255, 118, 193, 180, 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, 236, 246, 244, 255, 136, 201, 190, 255, 69, 170, 154, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 246, 246, 246, 224, 245, 245, 245, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 245, 245, 245, 32, 245, 245, 245, 221, 3, 3, 3, 188, 246, 246, 246, 232, 255, 255, 255, 245, 168, 168, 168, 243, 238, 238, 238, 243, 255, 255, 255, 255, 255, 255, 255, 230, 244, 244, 244, 253, 255, 255, 255, 255, 255, 255, 255, 192, 196, 196, 196, 9, 169, 169, 169, 208, 255, 255, 255, 156, 255, 255, 255, 179, 255, 255, 255, 179, 255, 255, 255, 113, 64, 64, 64, 0, 31, 96, 128, 0, 65, 192, 255, 156, 67, 193, 255, 255, 67, 193, 255, 255, 67, 193, 255, 255, 210, 240, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 96, 202, 255, 255, 67, 193, 255, 255, 67, 193, 255, 255, 67, 193, 255, 255, 66, 192, 255, 56, 0, 0, 0, 0, 0, 0, 0, 0, 87, 172, 255, 66, 89, 174, 255, 255, 89, 174, 255, 255, 49, 228, 107, 255, 30, 255, 32, 255, 30, 255, 32, 255, 30, 255, 32, 255, 30, 255, 32, 255, 31, 254, 35, 255, 30, 255, 32, 255, 30, 255, 32, 255, 30, 255, 32, 255, 30, 255, 33, 255, 34, 249, 49, 255, 89, 174, 255, 255, 88, 173, 255, 64, 0, 0, 0, 0, 98, 97, 60, 0, 218, 219, 152, 252, 243, 247, 187, 255, 243, 247, 187, 255, 243, 247, 187, 255, 243, 247, 187, 255, 243, 247, 187, 255, 243, 247, 187, 255, 243, 247, 187, 255, 243, 247, 187, 255, 243, 247, 187, 255, 243, 247, 187, 255, 243, 247, 187, 255, 204, 203, 133, 178, 97, 96, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 128, 0, 255, 255, 255, 90, 255, 255, 255, 236, 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, 246, 255, 255, 255, 102, 128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 191, 2, 37, 3, 255, 170, 40, 4, 255, 255, 36, 2, 255, 130, 24, 0, 191, 4, 38, 2, 255, 106, 40, 4, 255, 250, 40, 4, 255, 255, 40, 4, 255, 255, 38, 2, 255, 116, 9, 0, 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, 9, 60, 26, 0, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 21, 121, 54, 255, 51, 139, 80, 255, 24, 123, 57, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 24, 123, 57, 255, 51, 139, 80, 255, 21, 121, 54, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 136, 204, 238, 253, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 137, 204, 238, 255, 159, 214, 241, 255, 160, 214, 241, 255, 160, 214, 241, 255, 160, 214, 241, 255, 160, 214, 241, 255, 165, 216, 242, 255, 189, 227, 245, 255, 241, 249, 253, 255, 253, 254, 255, 255, 164, 216, 242, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 76, 174, 158, 255, 165, 214, 206, 255, 249, 252, 252, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 119, 193, 181, 255, 118, 193, 180, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 249, 252, 252, 255, 165, 214, 206, 255, 76, 174, 158, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 245, 245, 245, 196, 214, 214, 214, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 230, 230, 230, 64, 245, 245, 245, 194, 0, 0, 0, 188, 108, 108, 108, 64, 170, 170, 170, 14, 0, 0, 0, 215, 197, 197, 197, 219, 255, 255, 255, 255, 240, 240, 240, 126, 90, 90, 90, 218, 215, 215, 215, 234, 255, 255, 255, 141, 183, 183, 183, 8, 169, 169, 169, 208, 255, 255, 255, 221, 255, 255, 255, 26, 255, 255, 255, 50, 255, 255, 255, 188, 128, 128, 128, 0, 14, 46, 64, 0, 61, 188, 255, 115, 67, 193, 255, 255, 67, 193, 255, 255, 67, 193, 255, 255, 211, 240, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 96, 203, 255, 255, 67, 193, 255, 255, 67, 193, 255, 255, 67, 193, 255, 252, 50, 187, 255, 19, 0, 0, 0, 0, 0, 0, 0, 0, 87, 171, 255, 34, 89, 174, 255, 255, 89, 174, 255, 255, 54, 221, 125, 255, 30, 255, 32, 255, 30, 255, 32, 255, 30, 254, 33, 255, 30, 254, 34, 255, 72, 197, 191, 255, 66, 205, 168, 255, 30, 255, 33, 255, 30, 255, 32, 255, 30, 255, 32, 255, 63, 209, 158, 255, 89, 174, 255, 255, 86, 171, 255, 32, 0, 0, 0, 0, 98, 97, 60, 0, 218, 219, 152, 252, 243, 247, 187, 255, 243, 247, 187, 255, 243, 247, 187, 255, 243, 247, 187, 255, 243, 247, 187, 255, 243, 247, 187, 255, 243, 247, 187, 255, 243, 247, 187, 255, 243, 247, 187, 255, 243, 247, 187, 255, 243, 247, 187, 255, 204, 203, 133, 178, 97, 96, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 64, 64, 0, 191, 191, 191, 23, 255, 255, 255, 218, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 245, 255, 255, 255, 44, 64, 64, 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, 10, 1, 128, 0, 29, 2, 255, 149, 40, 4, 255, 255, 40, 4, 255, 255, 40, 4, 255, 237, 40, 4, 255, 242, 40, 4, 255, 255, 40, 4, 255, 255, 40, 4, 255, 255, 39, 3, 255, 191, 24, 0, 191, 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, 9, 60, 26, 0, 17, 119, 51, 255, 17, 119, 51, 255, 43, 134, 73, 255, 220, 235, 225, 255, 255, 255, 255, 255, 233, 242, 236, 255, 63, 145, 91, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 64, 146, 91, 255, 233, 242, 236, 255, 255, 255, 255, 255, 220, 235, 225, 255, 43, 134, 73, 255, 17, 119, 51, 255, 17, 119, 51, 255, 136, 204, 238, 253, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 177, 222, 244, 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, 233, 245, 252, 255, 160, 214, 241, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 91, 181, 166, 255, 193, 227, 221, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 119, 193, 181, 255, 118, 193, 180, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 192, 226, 220, 255, 91, 181, 166, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 245, 245, 245, 130, 183, 183, 183, 136, 60, 60, 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, 92, 92, 92, 0, 215, 215, 215, 138, 224, 224, 224, 128, 0, 0, 0, 188, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 215, 153, 153, 153, 208, 255, 255, 255, 255, 211, 211, 211, 44, 77, 77, 77, 215, 168, 168, 168, 215, 159, 159, 159, 0, 153, 153, 153, 8, 169, 169, 169, 208, 255, 255, 255, 218, 128, 128, 128, 0, 255, 255, 255, 28, 255, 255, 255, 188, 128, 128, 128, 0, 0, 0, 0, 0, 51, 186, 255, 29, 67, 193, 255, 247, 67, 193, 255, 255, 67, 193, 255, 255, 211, 240, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 96, 203, 255, 255, 67, 193, 255, 255, 67, 193, 255, 255, 65, 191, 255, 177, 28, 93, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 86, 128, 0, 89, 174, 255, 217, 89, 174, 255, 255, 80, 185, 223, 255, 34, 250, 46, 255, 30, 255, 32, 255, 30, 255, 32, 255, 39, 242, 68, 255, 88, 176, 250, 255, 47, 231, 98, 255, 30, 255, 32, 255, 30, 255, 32, 255, 41, 239, 76, 255, 89, 174, 255, 255, 88, 174, 255, 215, 43, 86, 128, 0, 0, 0, 0, 0, 98, 97, 60, 0, 218, 219, 152, 252, 224, 227, 186, 255, 185, 185, 185, 255, 185, 185, 185, 255, 185, 185, 185, 255, 185, 185, 185, 255, 185, 185, 185, 255, 185, 185, 185, 255, 185, 185, 185, 255, 185, 185, 185, 255, 185, 185, 185, 255, 228, 231, 186, 255, 204, 203, 133, 178, 97, 96, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 191, 191, 191, 8, 255, 255, 255, 243, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 64, 0, 39, 3, 255, 125, 40, 4, 255, 255, 40, 4, 255, 255, 40, 4, 255, 255, 40, 4, 255, 255, 40, 4, 255, 255, 40, 4, 255, 255, 40, 4, 255, 255, 39, 3, 255, 201, 28, 1, 191, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 60, 26, 0, 17, 119, 51, 255, 17, 119, 51, 255, 152, 196, 167, 255, 245, 250, 247, 255, 114, 174, 134, 255, 230, 240, 233, 255, 187, 216, 197, 255, 39, 131, 70, 255, 149, 194, 164, 255, 155, 198, 169, 255, 155, 198, 169, 255, 140, 189, 157, 255, 19, 120, 53, 255, 39, 131, 70, 255, 149, 194, 164, 255, 155, 198, 169, 255, 155, 198, 169, 255, 140, 189, 157, 255, 19, 120, 53, 255, 39, 131, 70, 255, 149, 194, 164, 255, 155, 198, 169, 255, 155, 198, 169, 255, 140, 189, 157, 255, 19, 120, 53, 255, 187, 216, 197, 255, 230, 240, 233, 255, 115, 175, 135, 255, 245, 250, 247, 255, 152, 196, 167, 255, 17, 119, 51, 255, 17, 119, 51, 255, 136, 204, 238, 253, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 137, 204, 238, 255, 159, 214, 241, 255, 160, 214, 241, 255, 160, 214, 241, 255, 160, 214, 241, 255, 160, 214, 241, 255, 160, 214, 241, 255, 146, 208, 239, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 114, 191, 178, 255, 220, 239, 236, 255, 255, 255, 255, 255, 255, 255, 255, 255, 119, 193, 181, 255, 118, 193, 180, 255, 255, 255, 255, 255, 255, 255, 255, 255, 219, 239, 235, 255, 113, 191, 178, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 241, 241, 241, 36, 246, 246, 246, 233, 183, 183, 183, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 183, 183, 19, 246, 246, 246, 234, 180, 180, 180, 35, 0, 0, 0, 188, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 215, 87, 87, 87, 208, 181, 181, 181, 56, 102, 102, 102, 0, 77, 77, 77, 215, 168, 168, 168, 215, 84, 84, 84, 0, 153, 153, 153, 8, 169, 169, 169, 208, 255, 255, 255, 218, 128, 128, 128, 0, 255, 255, 255, 28, 255, 255, 255, 188, 128, 128, 128, 0, 0, 0, 0, 0, 13, 47, 64, 0, 66, 192, 255, 115, 67, 193, 255, 255, 67, 193, 255, 255, 211, 240, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 96, 203, 255, 255, 67, 193, 255, 255, 67, 193, 255, 237, 32, 180, 255, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 42, 64, 0, 88, 170, 255, 101, 89, 174, 255, 255, 89, 174, 255, 255, 82, 183, 230, 255, 60, 213, 148, 255, 61, 211, 152, 255, 85, 180, 239, 255, 89, 174, 255, 255, 33, 250, 44, 255, 30, 255, 32, 255, 30, 254, 33, 255, 30, 255, 33, 255, 84, 180, 239, 255, 85, 173, 255, 100, 20, 43, 64, 0, 0, 0, 0, 0, 98, 97, 60, 0, 218, 219, 152, 252, 243, 247, 187, 255, 243, 247, 187, 255, 243, 247, 187, 255, 243, 247, 187, 255, 243, 247, 187, 255, 243, 247, 187, 255, 243, 247, 187, 255, 243, 247, 187, 255, 243, 247, 187, 255, 243, 247, 187, 255, 243, 247, 187, 255, 204, 203, 133, 178, 97, 96, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 79, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 234, 255, 255, 255, 219, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 142, 128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 64, 0, 37, 3, 255, 102, 40, 4, 255, 255, 40, 4, 255, 255, 40, 4, 255, 255, 40, 4, 255, 255, 40, 4, 255, 255, 40, 4, 255, 255, 40, 4, 255, 248, 39, 3, 255, 141, 29, 0, 191, 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, 9, 60, 26, 0, 17, 119, 51, 255, 17, 119, 51, 255, 161, 201, 174, 255, 240, 246, 242, 255, 77, 153, 102, 255, 218, 234, 224, 255, 196, 221, 204, 255, 62, 145, 90, 255, 227, 239, 231, 255, 236, 244, 239, 255, 236, 244, 239, 255, 210, 229, 216, 255, 25, 124, 58, 255, 62, 145, 90, 255, 227, 239, 231, 255, 236, 244, 239, 255, 236, 244, 239, 255, 210, 229, 216, 255, 25, 124, 58, 255, 62, 145, 90, 255, 227, 239, 231, 255, 236, 244, 239, 255, 236, 244, 239, 255, 210, 229, 216, 255, 25, 124, 58, 255, 196, 221, 204, 255, 218, 234, 224, 255, 77, 153, 102, 255, 240, 246, 242, 255, 161, 201, 174, 255, 17, 119, 51, 255, 17, 119, 51, 255, 136, 204, 238, 253, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 70, 171, 154, 255, 141, 203, 193, 255, 239, 248, 246, 255, 119, 193, 181, 255, 118, 193, 180, 255, 239, 248, 246, 255, 141, 203, 193, 255, 70, 171, 154, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 111, 111, 111, 0, 235, 235, 235, 141, 245, 245, 245, 176, 166, 166, 166, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, 172, 172, 2, 245, 245, 245, 177, 235, 235, 235, 139, 111, 111, 111, 0, 0, 0, 0, 188, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 215, 77, 77, 77, 208, 68, 68, 68, 8, 39, 39, 39, 0, 77, 77, 77, 215, 168, 168, 168, 215, 84, 84, 84, 0, 153, 153, 153, 8, 169, 169, 169, 208, 255, 255, 255, 218, 128, 128, 128, 0, 255, 255, 255, 28, 255, 255, 255, 188, 128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 48, 64, 0, 66, 192, 255, 112, 67, 193, 255, 245, 211, 240, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 96, 203, 255, 255, 66, 193, 255, 213, 61, 181, 255, 45, 7, 43, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 123, 191, 4, 88, 173, 255, 187, 89, 174, 255, 255, 89, 174, 255, 255, 89, 174, 255, 255, 89, 174, 255, 255, 89, 174, 255, 255, 89, 174, 255, 255, 48, 230, 101, 255, 30, 255, 32, 255, 30, 255, 32, 255, 36, 245, 58, 255, 86, 174, 252, 186, 63, 128, 191, 3, 0, 0, 0, 0, 0, 0, 0, 0, 98, 97, 60, 0, 218, 219, 152, 252, 243, 247, 187, 255, 243, 247, 187, 255, 243, 247, 187, 255, 243, 247, 187, 255, 243, 247, 187, 255, 243, 247, 187, 255, 243, 247, 187, 255, 243, 247, 187, 255, 243, 247, 187, 255, 243, 247, 187, 255, 243, 247, 187, 255, 204, 203, 133, 178, 97, 96, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 128, 0, 255, 255, 255, 161, 255, 255, 255, 255, 255, 255, 255, 204, 191, 191, 191, 30, 191, 191, 191, 12, 255, 255, 255, 161, 255, 255, 255, 255, 255, 255, 255, 233, 191, 191, 191, 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, 16, 0, 191, 3, 29, 2, 255, 145, 40, 4, 255, 243, 40, 4, 255, 255, 40, 4, 255, 255, 40, 4, 255, 255, 40, 4, 255, 255, 39, 3, 255, 112, 32, 2, 255, 22, 8, 0, 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, 9, 60, 26, 0, 17, 119, 51, 255, 17, 119, 51, 255, 59, 143, 87, 255, 240, 246, 242, 255, 255, 255, 255, 255, 248, 251, 249, 255, 85, 157, 109, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 85, 157, 109, 255, 248, 251, 249, 255, 255, 255, 255, 255, 239, 246, 242, 255, 59, 143, 87, 255, 17, 119, 51, 255, 17, 119, 51, 255, 136, 204, 238, 253, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 78, 175, 159, 255, 84, 177, 162, 255, 84, 177, 162, 255, 78, 175, 159, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 0, 0, 0, 0, 177, 177, 177, 5, 245, 245, 245, 187, 244, 244, 244, 171, 183, 183, 183, 12, 59, 59, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 60, 60, 0, 183, 183, 183, 13, 245, 245, 245, 172, 244, 244, 244, 186, 176, 176, 176, 5, 0, 0, 0, 0, 0, 0, 0, 188, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 215, 77, 77, 77, 208, 68, 68, 68, 8, 39, 39, 39, 0, 77, 77, 77, 215, 168, 168, 168, 215, 84, 84, 84, 0, 153, 153, 153, 8, 169, 169, 169, 208, 255, 255, 255, 218, 128, 128, 128, 0, 255, 255, 255, 28, 255, 255, 255, 188, 128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 40, 64, 0, 57, 167, 255, 23, 237, 249, 255, 215, 255, 255, 255, 255, 255, 255, 255, 255, 155, 222, 255, 99, 44, 134, 191, 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, 64, 129, 191, 16, 87, 173, 255, 189, 89, 174, 255, 255, 89, 174, 255, 255, 89, 174, 255, 255, 89, 174, 255, 255, 89, 174, 255, 255, 85, 179, 240, 255, 57, 217, 137, 255, 51, 225, 115, 255, 76, 187, 217, 188, 64, 129, 191, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 98, 97, 60, 0, 218, 219, 152, 252, 224, 227, 186, 255, 185, 185, 185, 255, 185, 185, 185, 255, 185, 185, 185, 255, 185, 185, 185, 255, 185, 185, 185, 255, 185, 185, 185, 255, 185, 185, 185, 255, 185, 185, 185, 255, 185, 185, 185, 255, 228, 231, 186, 255, 204, 203, 133, 178, 97, 96, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 191, 191, 191, 5, 255, 255, 255, 238, 255, 255, 255, 162, 191, 191, 191, 9, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 128, 0, 255, 255, 255, 91, 255, 255, 255, 242, 255, 255, 255, 79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 128, 0, 29, 0, 191, 15, 38, 2, 255, 113, 39, 4, 255, 222, 40, 4, 255, 255, 40, 4, 255, 255, 38, 3, 255, 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, 9, 60, 26, 0, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 36, 130, 68, 255, 86, 158, 110, 255, 45, 135, 75, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 45, 135, 75, 255, 86, 158, 110, 255, 36, 130, 68, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 136, 204, 238, 253, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 0, 0, 0, 0, 0, 0, 0, 0, 181, 181, 181, 6, 240, 240, 240, 151, 246, 246, 246, 229, 242, 242, 242, 118, 244, 244, 244, 42, 183, 183, 183, 6, 183, 183, 183, 6, 245, 245, 245, 42, 243, 243, 243, 119, 246, 246, 246, 230, 239, 239, 239, 149, 180, 180, 180, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 188, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 215, 77, 77, 77, 208, 69, 69, 69, 8, 58, 58, 58, 0, 77, 77, 77, 215, 168, 168, 168, 215, 126, 126, 126, 0, 155, 155, 155, 8, 169, 169, 169, 208, 255, 255, 255, 218, 191, 191, 191, 0, 255, 255, 255, 28, 255, 255, 255, 188, 128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 128, 0, 255, 255, 255, 195, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 128, 191, 4, 87, 172, 255, 107, 88, 173, 255, 224, 89, 174, 255, 255, 89, 174, 255, 255, 89, 174, 255, 255, 89, 174, 255, 255, 88, 174, 255, 223, 88, 171, 255, 106, 55, 123, 191, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 98, 97, 60, 0, 218, 219, 152, 252, 243, 247, 187, 255, 243, 247, 187, 255, 243, 247, 187, 255, 243, 247, 187, 255, 243, 247, 187, 255, 243, 247, 187, 255, 243, 247, 187, 255, 243, 247, 187, 255, 243, 247, 187, 255, 243, 247, 187, 255, 243, 247, 187, 255, 204, 203, 133, 178, 97, 96, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 66, 255, 255, 255, 111, 128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 64, 64, 0, 255, 255, 255, 34, 255, 255, 255, 121, 128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 64, 0, 20, 0, 191, 3, 39, 3, 255, 79, 39, 3, 255, 189, 34, 3, 255, 107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 60, 26, 0, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 136, 204, 238, 253, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 117, 117, 117, 0, 240, 240, 240, 48, 243, 243, 243, 150, 246, 246, 246, 221, 246, 246, 246, 251, 246, 246, 246, 250, 246, 246, 246, 220, 243, 243, 243, 150, 240, 240, 240, 47, 115, 115, 115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 144, 0, 0, 0, 230, 0, 0, 0, 230, 0, 0, 0, 198, 77, 77, 77, 162, 78, 78, 78, 230, 78, 78, 78, 230, 77, 77, 77, 180, 168, 168, 168, 180, 169, 169, 169, 230, 169, 169, 169, 230, 167, 167, 167, 162, 255, 255, 255, 199, 255, 255, 255, 230, 255, 255, 255, 230, 255, 255, 255, 143, 128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 128, 0, 255, 255, 255, 195, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 43, 64, 0, 44, 86, 128, 0, 86, 171, 255, 41, 88, 173, 255, 76, 88, 173, 255, 76, 87, 172, 255, 40, 44, 86, 128, 0, 22, 42, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 98, 97, 61, 0, 205, 203, 134, 220, 215, 215, 148, 235, 215, 215, 148, 235, 215, 215, 148, 235, 215, 215, 148, 235, 215, 215, 148, 235, 215, 215, 148, 235, 215, 215, 148, 235, 215, 215, 148, 235, 215, 215, 148, 235, 215, 215, 148, 235, 215, 215, 148, 235, 199, 196, 125, 155, 97, 95, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 191, 191, 191, 7, 64, 64, 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, 191, 191, 191, 2, 64, 64, 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, 0, 0, 0, 0, 0, 19, 1, 128, 0, 18, 0, 255, 10, 0, 0, 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, 9, 60, 26, 0, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 17, 119, 51, 255, 136, 204, 238, 253, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 136, 204, 238, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 68, 170, 153, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 204, 102, 119, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 120, 120, 120, 0, 123, 123, 123, 0, 123, 123, 123, 0, 123, 123, 123, 0, 123, 123, 123, 0, 120, 120, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38, 38, 38, 0, 39, 39, 39, 0, 39, 39, 39, 0, 38, 38, 38, 0, 83, 83, 83, 0, 84, 84, 84, 0, 84, 84, 84, 0, 83, 83, 83, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 128, 0, 255, 255, 255, 195, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 40, 0, 0, 0, 0, 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, 64, 64, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 98, 97, 61, 0, 98, 97, 61, 0, 98, 97, 61, 0, 98, 97, 61, 0, 98, 97, 61, 0, 98, 97, 61, 0, 98, 97, 61, 0, 98, 97, 61, 0, 98, 97, 61, 0, 98, 97, 61, 0, 98, 97, 61, 0, 98, 97, 61, 0, 98, 96, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 55, 0, 0, 0, 77, 0, 0, 0, 77, 0, 0, 0, 77, 0, 0, 0, 77, 0, 0, 0, 77, 0, 0, 0, 77, 0, 0, 0, 77, 0, 0, 0, 77, 0, 0, 0, 77, 0, 0, 0, 77, 0, 0, 0, 77, 0, 0, 0, 77, 0, 0, 0, 77, 0, 0, 0, 77, 0, 0, 0, 77, 0, 0, 0, 77, 0, 0, 0, 77, 0, 0, 0, 77, 0, 0, 0, 77, 0, 0, 0, 77, 0, 0, 0, 77, 0, 0, 0, 77, 0, 0, 0, 77, 0, 0, 0, 77, 0, 0, 0, 65, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 9, 60, 26, 0, 9, 60, 26, 0, 9, 60, 26, 0, 9, 60, 26, 0, 9, 60, 26, 0, 9, 60, 26, 0, 9, 60, 26, 0, 9, 60, 26, 0, 9, 60, 26, 0, 9, 60, 26, 0, 9, 60, 26, 0, 9, 60, 26, 0, 9, 60, 26, 0, 9, 60, 26, 0, 9, 60, 26, 0, 9, 60, 26, 0, 9, 60, 26, 0, 9, 60, 26, 0, 9, 60, 26, 0, 9, 60, 26, 0, 9, 60, 26, 0, 9, 60, 26, 0, 9, 60, 26, 0, 9, 60, 26, 0, 9, 60, 26, 0, 9, 60, 26, 0, 9, 60, 26, 0, 9, 60, 26, 0, 9, 60, 26, 0, 9, 60, 26, 0, 9, 60, 26, 0, 9, 60, 26, 0, 68, 102, 119, 0, 68, 102, 119, 0, 68, 102, 119, 0, 68, 102, 119, 0, 68, 102, 119, 0, 68, 102, 119, 0, 68, 102, 119, 0, 68, 102, 119, 0, 68, 102, 119, 0, 68, 102, 119, 0, 68, 102, 119, 0, 68, 102, 119, 0, 68, 102, 119, 0, 68, 102, 119, 0, 68, 102, 119, 0, 68, 102, 119, 0, 68, 102, 119, 0, 68, 102, 119, 0, 68, 102, 119, 0, 68, 102, 119, 0, 68, 102, 119, 0, 68, 102, 119, 0, 68, 102, 119, 0, 68, 102, 119, 0, 68, 102, 119, 0, 68, 102, 119, 0, 68, 102, 119, 0, 68, 102, 119, 0, 68, 102, 119, 0, 68, 102, 119, 0, 68, 102, 119, 0, 68, 102, 119, 0, 34, 85, 77, 0, 34, 85, 77, 0, 34, 85, 77, 0, 34, 85, 77, 0, 34, 85, 77, 0, 34, 85, 77, 0, 34, 85, 77, 0, 34, 85, 77, 0, 34, 85, 77, 0, 34, 85, 77, 0, 34, 85, 77, 0, 34, 85, 77, 0, 34, 85, 77, 0, 34, 85, 77, 0, 34, 85, 77, 0, 34, 85, 77, 0, 34, 85, 77, 0, 34, 85, 77, 0, 34, 85, 77, 0, 34, 85, 77, 0, 34, 85, 77, 0, 34, 85, 77, 0, 34, 85, 77, 0, 34, 85, 77, 0, 34, 85, 77, 0, 34, 85, 77, 0, 34, 85, 77, 0, 34, 85, 77, 0, 34, 85, 77, 0, 34, 85, 77, 0, 34, 85, 77, 0, 34, 85, 77, 0, 102, 51, 60, 0, 102, 51, 60, 0, 102, 51, 60, 0, 102, 51, 60, 0, 102, 51, 60, 0, 102, 51, 60, 0, 102, 51, 60, 0, 102, 51, 60, 0, 102, 51, 60, 0, 102, 51, 60, 0, 102, 51, 60, 0, 102, 51, 60, 0, 102, 51, 60, 0, 102, 51, 60, 0, 102, 51, 60, 0, 102, 51, 60, 0, 102, 51, 60, 0, 102, 51, 60, 0, 102, 51, 60, 0, 102, 51, 60, 0, 102, 51, 60, 0, 102, 51, 60, 0, 102, 51, 60, 0, 102, 51, 60, 0, 102, 51, 60, 0, 102, 51, 60, 0, 102, 51, 60, 0, 102, 51, 60, 0, 102, 51, 60, 0, 102, 51, 60, 0, 102, 51, 60, 0, 102, 51, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 64, 64, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 64, 64, 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, 128, 128, 128, 0, 255, 255, 255, 195, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 40, 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, 64, 64, 0, 255, 255, 255, 52, 255, 255, 255, 116, 255, 255, 255, 116, 255, 255, 255, 116, 255, 255, 255, 116, 255, 255, 255, 116, 255, 255, 255, 116, 255, 255, 255, 116, 255, 255, 255, 116, 255, 255, 255, 116, 255, 255, 255, 116, 255, 255, 255, 116, 255, 255, 255, 116, 255, 255, 255, 68, 128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 101, 0, 0, 0, 133, 0, 0, 0, 153, 0, 0, 0, 123, 0, 0, 0, 67, 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, 17, 0, 0, 0, 195, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 223, 0, 0, 0, 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 191, 191, 31, 191, 191, 191, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 128, 128, 0, 255, 255, 255, 138, 255, 255, 255, 204, 255, 255, 255, 204, 255, 255, 255, 204, 255, 255, 255, 132, 128, 128, 128, 0, 0, 0, 0, 0, 255, 255, 255, 54, 255, 255, 255, 204, 255, 255, 255, 204, 255, 255, 255, 204, 255, 255, 255, 204, 255, 255, 255, 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, 118, 167, 191, 0, 252, 254, 255, 197, 255, 255, 255, 255, 255, 255, 255, 255, 217, 242, 255, 45, 16, 48, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 128, 0, 255, 255, 255, 88, 255, 255, 255, 145, 255, 255, 255, 83, 255, 255, 255, 83, 255, 255, 255, 83, 255, 255, 255, 83, 255, 255, 255, 83, 255, 255, 255, 83, 255, 255, 255, 83, 255, 255, 255, 83, 255, 255, 255, 83, 255, 255, 255, 83, 255, 255, 255, 138, 255, 255, 255, 111, 128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 133, 0, 0, 0, 253, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 207, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 255, 25, 25, 25, 255, 77, 77, 77, 255, 77, 77, 77, 255, 77, 77, 77, 255, 77, 77, 77, 255, 77, 77, 77, 255, 15, 15, 15, 255, 62, 62, 62, 255, 77, 77, 77, 255, 77, 77, 77, 255, 77, 77, 77, 255, 77, 77, 77, 255, 77, 77, 77, 255, 77, 77, 77, 255, 57, 57, 57, 255, 20, 20, 20, 255, 77, 77, 77, 255, 77, 77, 77, 255, 77, 77, 77, 255, 77, 77, 77, 255, 77, 77, 77, 255, 77, 77, 77, 255, 77, 77, 77, 255, 23, 23, 23, 255, 55, 55, 55, 255, 42, 42, 42, 255, 0, 0, 0, 255, 0, 0, 0, 209, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 125, 255, 255, 255, 199, 255, 255, 255, 50, 128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 128, 128, 0, 255, 255, 255, 173, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 165, 128, 128, 128, 0, 0, 0, 0, 0, 255, 255, 255, 68, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 46, 64, 0, 58, 185, 255, 44, 66, 192, 255, 188, 211, 240, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 96, 202, 255, 243, 66, 192, 255, 137, 49, 142, 191, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 128, 0, 255, 255, 255, 88, 255, 255, 255, 124, 128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 128, 128, 0, 255, 255, 255, 109, 255, 255, 255, 111, 128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 93, 0, 0, 0, 255, 50, 50, 50, 255, 169, 169, 169, 255, 209, 209, 209, 255, 230, 230, 230, 255, 195, 195, 195, 255, 111, 111, 111, 255, 2, 2, 2, 255, 0, 0, 0, 213, 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, 221, 0, 0, 0, 255, 207, 207, 207, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 50, 50, 50, 255, 208, 208, 208, 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, 190, 190, 190, 255, 68, 68, 68, 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, 75, 75, 75, 255, 183, 183, 183, 255, 247, 247, 247, 255, 17, 17, 17, 255, 0, 0, 0, 255, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 123, 255, 255, 255, 255, 255, 255, 255, 252, 255, 255, 255, 147, 191, 191, 191, 16, 64, 64, 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, 128, 128, 128, 0, 255, 255, 255, 173, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 165, 128, 128, 128, 0, 0, 0, 0, 0, 255, 255, 255, 68, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 46, 64, 0, 54, 188, 255, 58, 67, 193, 255, 243, 67, 193, 255, 255, 211, 240, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 96, 203, 255, 255, 67, 193, 255, 255, 66, 191, 255, 194, 49, 142, 191, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 128, 0, 255, 255, 255, 88, 255, 255, 255, 124, 128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 128, 128, 0, 255, 255, 255, 109, 255, 255, 255, 111, 128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 13, 13, 13, 255, 237, 237, 237, 255, 255, 255, 255, 255, 237, 237, 237, 255, 224, 224, 224, 255, 255, 255, 255, 255, 255, 255, 255, 255, 120, 120, 120, 255, 0, 0, 0, 255, 0, 0, 0, 73, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 255, 238, 238, 238, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 50, 50, 50, 255, 208, 208, 208, 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, 190, 190, 190, 255, 68, 68, 68, 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, 75, 75, 75, 255, 183, 183, 183, 255, 255, 255, 255, 255, 40, 40, 40, 255, 0, 0, 0, 255, 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 120, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 232, 255, 255, 255, 93, 191, 191, 191, 1, 0, 0, 0, 0, 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, 128, 128, 0, 255, 255, 255, 173, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 165, 128, 128, 128, 0, 0, 0, 0, 0, 255, 255, 255, 68, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 141, 191, 9, 67, 193, 255, 226, 67, 193, 255, 255, 67, 193, 255, 255, 211, 240, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 96, 203, 255, 255, 67, 193, 255, 255, 67, 193, 255, 255, 66, 192, 255, 135, 17, 48, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 128, 0, 255, 255, 255, 88, 255, 255, 255, 124, 128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 128, 128, 0, 255, 255, 255, 109, 255, 255, 255, 111, 128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 234, 59, 59, 59, 255, 255, 255, 255, 255, 217, 217, 217, 255, 13, 13, 13, 255, 2, 2, 2, 255, 163, 163, 163, 255, 255, 255, 255, 255, 186, 186, 186, 255, 0, 0, 0, 255, 0, 0, 0, 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, 235, 0, 0, 0, 255, 238, 238, 238, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 50, 50, 50, 255, 208, 208, 208, 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, 190, 190, 190, 255, 68, 68, 68, 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, 75, 75, 75, 255, 183, 183, 183, 255, 255, 255, 255, 255, 40, 40, 40, 255, 0, 0, 0, 255, 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 118, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 193, 255, 255, 255, 43, 64, 64, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 128, 0, 255, 255, 255, 173, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 165, 128, 128, 128, 0, 0, 0, 0, 0, 255, 255, 255, 68, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65, 191, 255, 91, 67, 193, 255, 255, 67, 193, 255, 255, 67, 193, 255, 255, 211, 240, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 96, 203, 255, 255, 67, 193, 255, 255, 67, 193, 255, 255, 67, 193, 255, 241, 45, 140, 191, 7, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 128, 0, 255, 255, 255, 88, 255, 255, 255, 124, 128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 128, 128, 0, 255, 255, 255, 109, 255, 255, 255, 111, 128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 252, 77, 77, 77, 255, 255, 255, 255, 255, 178, 178, 178, 255, 0, 0, 0, 255, 0, 0, 0, 255, 113, 113, 113, 255, 255, 255, 255, 255, 187, 187, 187, 255, 0, 0, 0, 255, 0, 0, 0, 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, 235, 0, 0, 0, 255, 166, 166, 166, 255, 179, 179, 179, 255, 179, 179, 179, 255, 179, 179, 179, 255, 179, 179, 179, 255, 179, 179, 179, 255, 43, 43, 43, 255, 147, 147, 147, 255, 179, 179, 179, 255, 179, 179, 179, 255, 179, 179, 179, 255, 179, 179, 179, 255, 179, 179, 179, 255, 179, 179, 179, 255, 138, 138, 138, 255, 62, 62, 62, 255, 179, 179, 179, 255, 179, 179, 179, 255, 179, 179, 179, 255, 179, 179, 179, 255, 179, 179, 179, 255, 179, 179, 179, 255, 179, 179, 179, 255, 67, 67, 67, 255, 134, 134, 134, 255, 179, 179, 179, 255, 28, 28, 28, 255, 0, 0, 0, 255, 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 115, 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, 251, 255, 255, 255, 139, 191, 191, 191, 12, 64, 64, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 128, 0, 255, 255, 255, 173, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 165, 128, 128, 128, 0, 0, 0, 0, 0, 255, 255, 255, 68, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 15, 0, 0, 0, 0, 0, 0, 0, 0, 32, 93, 128, 0, 65, 190, 255, 148, 67, 193, 255, 255, 67, 193, 255, 255, 67, 193, 255, 255, 211, 240, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 96, 203, 255, 255, 67, 193, 255, 255, 67, 193, 255, 255, 67, 193, 255, 255, 65, 192, 255, 49, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 128, 0, 255, 255, 255, 88, 255, 255, 255, 124, 128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 128, 128, 0, 255, 255, 255, 109, 255, 255, 255, 111, 128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 49, 49, 49, 255, 255, 255, 255, 255, 253, 253, 253, 255, 138, 138, 138, 255, 114, 114, 114, 255, 236, 236, 236, 255, 255, 255, 255, 255, 152, 152, 152, 255, 0, 0, 0, 255, 0, 0, 0, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 0, 0, 0, 255, 71, 71, 71, 255, 51, 51, 51, 255, 14, 14, 14, 255, 77, 77, 77, 255, 77, 77, 77, 255, 77, 77, 77, 255, 77, 77, 77, 255, 77, 77, 77, 255, 77, 77, 77, 255, 77, 77, 77, 255, 17, 17, 17, 255, 49, 49, 49, 255, 77, 77, 77, 255, 77, 77, 77, 255, 77, 77, 77, 255, 77, 77, 77, 255, 77, 77, 77, 255, 77, 77, 77, 255, 59, 59, 59, 255, 7, 7, 7, 255, 77, 77, 77, 255, 77, 77, 77, 255, 77, 77, 77, 255, 77, 77, 77, 255, 77, 77, 77, 255, 77, 77, 77, 255, 12, 12, 12, 255, 0, 0, 0, 255, 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 113, 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, 223, 255, 255, 255, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 128, 0, 255, 255, 255, 173, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 165, 128, 128, 128, 0, 0, 0, 0, 0, 255, 255, 255, 68, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 15, 0, 0, 0, 0, 0, 0, 0, 0, 32, 95, 128, 0, 65, 192, 255, 155, 67, 193, 255, 255, 67, 193, 255, 255, 67, 193, 255, 255, 211, 240, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 96, 203, 255, 255, 67, 193, 255, 255, 67, 193, 255, 255, 67, 193, 255, 255, 66, 192, 255, 58, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 128, 0, 255, 255, 255, 88, 255, 255, 255, 124, 128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 128, 128, 0, 255, 255, 255, 109, 255, 255, 255, 111, 128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 12, 12, 12, 255, 252, 252, 252, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 90, 90, 90, 255, 0, 0, 0, 254, 0, 0, 0, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 255, 238, 238, 238, 255, 170, 170, 170, 255, 48, 48, 48, 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, 55, 55, 55, 255, 163, 163, 163, 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, 198, 198, 198, 255, 23, 23, 23, 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, 40, 40, 40, 255, 0, 0, 0, 255, 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 110, 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, 181, 255, 255, 255, 40, 64, 64, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 128, 0, 255, 255, 255, 173, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 165, 128, 128, 128, 0, 0, 0, 0, 0, 255, 255, 255, 68, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 15, 0, 0, 0, 0, 0, 0, 0, 0, 16, 48, 64, 0, 65, 192, 255, 117, 67, 193, 255, 255, 67, 193, 255, 255, 67, 193, 255, 255, 211, 240, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 96, 203, 255, 255, 67, 193, 255, 255, 67, 193, 255, 255, 67, 193, 255, 253, 61, 181, 255, 21, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 128, 0, 255, 255, 255, 88, 255, 255, 255, 124, 128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 128, 128, 0, 255, 255, 255, 109, 255, 255, 255, 111, 128, 128, 128, 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, 26, 0, 0, 0, 26, 0, 0, 0, 148, 0, 0, 0, 255, 196, 196, 196, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 246, 246, 246, 255, 17, 17, 17, 255, 0, 0, 0, 210, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 255, 238, 238, 238, 255, 170, 170, 170, 255, 48, 48, 48, 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, 55, 55, 55, 255, 163, 163, 163, 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, 198, 198, 198, 255, 23, 23, 23, 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, 40, 40, 40, 255, 0, 0, 0, 255, 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 108, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 214, 255, 255, 255, 72, 128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 128, 0, 255, 255, 255, 173, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 165, 128, 128, 128, 0, 0, 0, 0, 0, 255, 255, 255, 68, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 189, 255, 31, 67, 193, 255, 249, 67, 193, 255, 255, 67, 193, 255, 255, 211, 240, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 96, 203, 255, 255, 67, 193, 255, 255, 67, 193, 255, 255, 65, 192, 255, 181, 31, 93, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 128, 0, 255, 255, 255, 88, 255, 255, 255, 124, 191, 191, 191, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 191, 191, 191, 0, 255, 255, 255, 109, 255, 255, 255, 111, 128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 0, 0, 0, 245, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 120, 120, 120, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 161, 161, 161, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 243, 0, 0, 0, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 255, 238, 238, 238, 255, 170, 170, 170, 255, 48, 48, 48, 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, 55, 55, 55, 255, 163, 163, 163, 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, 198, 198, 198, 255, 23, 23, 23, 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, 40, 40, 40, 255, 0, 0, 0, 255, 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 105, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 236, 255, 255, 255, 109, 191, 191, 191, 4, 64, 64, 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, 128, 128, 128, 0, 255, 255, 255, 173, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 165, 128, 128, 128, 0, 0, 0, 0, 0, 255, 255, 255, 68, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 47, 64, 0, 66, 192, 255, 121, 67, 193, 255, 255, 67, 193, 255, 255, 211, 240, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 96, 203, 255, 255, 67, 193, 255, 255, 67, 193, 255, 240, 58, 172, 255, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 128, 0, 255, 255, 255, 88, 255, 255, 255, 158, 255, 255, 255, 133, 255, 255, 255, 133, 255, 255, 255, 133, 255, 255, 255, 133, 255, 255, 255, 133, 255, 255, 255, 133, 255, 255, 255, 133, 255, 255, 255, 133, 255, 255, 255, 133, 255, 255, 255, 133, 255, 255, 255, 155, 255, 255, 255, 111, 128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 169, 0, 0, 0, 255, 40, 40, 40, 255, 51, 51, 51, 255, 51, 51, 51, 255, 8, 8, 8, 255, 38, 38, 38, 255, 254, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 56, 56, 56, 255, 2, 2, 2, 255, 25, 25, 25, 255, 26, 26, 26, 255, 23, 23, 23, 255, 0, 0, 0, 255, 0, 0, 0, 195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 255, 238, 238, 238, 255, 170, 170, 170, 255, 48, 48, 48, 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, 55, 55, 55, 255, 163, 163, 163, 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, 198, 198, 198, 255, 23, 23, 23, 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, 40, 40, 40, 255, 0, 0, 0, 255, 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 103, 255, 255, 255, 255, 255, 255, 255, 251, 255, 255, 255, 145, 191, 191, 191, 18, 64, 64, 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, 128, 128, 128, 0, 255, 255, 255, 173, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 165, 128, 128, 128, 0, 0, 0, 0, 0, 255, 255, 255, 68, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 95, 191, 1, 66, 192, 255, 120, 67, 193, 255, 248, 211, 240, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 96, 203, 255, 255, 67, 193, 255, 219, 37, 180, 255, 50, 13, 42, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 128, 0, 255, 255, 255, 88, 255, 255, 255, 166, 255, 255, 255, 166, 255, 255, 255, 166, 255, 255, 255, 166, 255, 255, 255, 166, 255, 255, 255, 166, 255, 255, 255, 166, 255, 255, 255, 166, 255, 255, 255, 166, 255, 255, 255, 166, 255, 255, 255, 166, 255, 255, 255, 166, 255, 255, 255, 111, 128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 234, 2, 2, 2, 255, 237, 237, 237, 255, 255, 255, 255, 255, 255, 255, 255, 255, 113, 113, 113, 255, 0, 0, 0, 255, 190, 190, 190, 255, 255, 255, 255, 255, 255, 255, 255, 255, 183, 183, 183, 255, 0, 0, 0, 255, 101, 101, 101, 255, 255, 255, 255, 255, 255, 255, 255, 255, 250, 250, 250, 255, 9, 9, 9, 255, 0, 0, 0, 245, 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, 235, 0, 0, 0, 255, 119, 119, 119, 255, 85, 85, 85, 255, 24, 24, 24, 255, 128, 128, 128, 255, 128, 128, 128, 255, 128, 128, 128, 255, 128, 128, 128, 255, 128, 128, 128, 255, 128, 128, 128, 255, 128, 128, 128, 255, 28, 28, 28, 255, 81, 81, 81, 255, 128, 128, 128, 255, 128, 128, 128, 255, 128, 128, 128, 255, 128, 128, 128, 255, 128, 128, 128, 255, 128, 128, 128, 255, 99, 99, 99, 255, 11, 11, 11, 255, 128, 128, 128, 255, 128, 128, 128, 255, 128, 128, 128, 255, 128, 128, 128, 255, 128, 128, 128, 255, 128, 128, 128, 255, 20, 20, 20, 255, 0, 0, 0, 255, 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 100, 255, 255, 255, 182, 255, 255, 255, 41, 128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 128, 128, 0, 255, 255, 255, 138, 255, 255, 255, 204, 255, 255, 255, 204, 255, 255, 255, 204, 255, 255, 255, 132, 128, 128, 128, 0, 0, 0, 0, 0, 255, 255, 255, 54, 255, 255, 255, 204, 255, 255, 255, 204, 255, 255, 255, 204, 255, 255, 255, 204, 255, 255, 255, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 48, 64, 0, 88, 199, 255, 28, 237, 249, 255, 217, 255, 255, 255, 255, 255, 255, 255, 255, 154, 221, 255, 107, 48, 143, 191, 5, 0, 43, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 128, 0, 255, 255, 255, 88, 255, 255, 255, 166, 255, 255, 255, 166, 255, 255, 255, 166, 255, 255, 255, 166, 255, 255, 255, 166, 255, 255, 255, 166, 255, 255, 255, 166, 255, 255, 255, 166, 255, 255, 255, 166, 255, 255, 255, 166, 255, 255, 255, 166, 255, 255, 255, 166, 255, 255, 255, 111, 128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 0, 0, 0, 255, 51, 51, 51, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 214, 214, 214, 255, 1, 1, 1, 255, 90, 90, 90, 255, 255, 255, 255, 255, 254, 254, 254, 255, 53, 53, 53, 255, 7, 7, 7, 255, 225, 225, 225, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 60, 60, 60, 255, 0, 0, 0, 255, 0, 0, 0, 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, 235, 0, 0, 0, 255, 119, 119, 119, 255, 128, 128, 128, 255, 128, 128, 128, 255, 128, 128, 128, 255, 128, 128, 128, 255, 128, 128, 128, 255, 15, 15, 15, 255, 95, 95, 95, 255, 128, 128, 128, 255, 128, 128, 128, 255, 128, 128, 128, 255, 128, 128, 128, 255, 128, 128, 128, 255, 128, 128, 128, 255, 85, 85, 85, 255, 24, 24, 24, 255, 128, 128, 128, 255, 128, 128, 128, 255, 128, 128, 128, 255, 128, 128, 128, 255, 128, 128, 128, 255, 128, 128, 128, 255, 128, 128, 128, 255, 28, 28, 28, 255, 81, 81, 81, 255, 128, 128, 128, 255, 23, 23, 23, 255, 0, 0, 0, 255, 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 191, 191, 11, 128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 64, 64, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 64, 64, 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, 128, 128, 128, 0, 255, 255, 255, 195, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 40, 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, 64, 64, 0, 255, 255, 255, 72, 255, 255, 255, 166, 255, 255, 255, 166, 255, 255, 255, 166, 255, 255, 255, 166, 255, 255, 255, 166, 255, 255, 255, 166, 255, 255, 255, 166, 255, 255, 255, 166, 255, 255, 255, 166, 255, 255, 255, 166, 255, 255, 255, 166, 255, 255, 255, 166, 255, 255, 255, 95, 128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 115, 0, 0, 0, 255, 64, 64, 64, 255, 153, 153, 153, 255, 178, 178, 178, 255, 179, 179, 179, 255, 202, 202, 202, 255, 43, 43, 43, 255, 7, 7, 7, 255, 230, 230, 230, 255, 172, 172, 172, 255, 0, 0, 0, 255, 107, 107, 107, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 116, 116, 116, 255, 0, 0, 0, 255, 0, 0, 0, 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, 235, 0, 0, 0, 255, 238, 238, 238, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 30, 30, 30, 255, 190, 190, 190, 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, 170, 170, 170, 255, 48, 48, 48, 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, 55, 55, 55, 255, 163, 163, 163, 255, 255, 255, 255, 255, 40, 40, 40, 255, 0, 0, 0, 255, 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 128, 128, 0, 255, 255, 255, 195, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 40, 0, 0, 0, 0, 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, 64, 64, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 0, 0, 0, 255, 118, 118, 118, 255, 151, 151, 151, 255, 128, 128, 128, 255, 127, 127, 127, 255, 102, 102, 102, 255, 81, 81, 81, 255, 0, 0, 0, 255, 109, 109, 109, 255, 32, 32, 32, 255, 6, 6, 6, 255, 38, 38, 38, 255, 78, 78, 78, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 171, 171, 171, 255, 0, 0, 0, 255, 0, 0, 0, 163, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 255, 238, 238, 238, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 30, 30, 30, 255, 190, 190, 190, 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, 170, 170, 170, 255, 48, 48, 48, 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, 55, 55, 55, 255, 163, 163, 163, 255, 255, 255, 255, 255, 40, 40, 40, 255, 0, 0, 0, 255, 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 128, 128, 0, 255, 255, 255, 195, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 244, 7, 7, 7, 255, 246, 246, 246, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 253, 253, 253, 255, 40, 40, 40, 255, 0, 0, 0, 255, 0, 0, 0, 255, 141, 141, 141, 255, 120, 120, 120, 255, 167, 167, 167, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 228, 228, 228, 255, 0, 0, 0, 255, 0, 0, 0, 220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 255, 238, 238, 238, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 30, 30, 30, 255, 190, 190, 190, 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, 170, 170, 170, 255, 48, 48, 48, 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, 55, 55, 55, 255, 163, 163, 163, 255, 255, 255, 255, 255, 40, 40, 40, 255, 0, 0, 0, 255, 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 10, 10, 0, 128, 11, 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, 128, 128, 128, 0, 255, 255, 255, 195, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 255, 65, 65, 65, 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, 156, 156, 156, 255, 0, 0, 0, 255, 42, 42, 42, 255, 239, 239, 239, 255, 48, 48, 48, 255, 251, 251, 251, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 29, 29, 29, 255, 0, 0, 0, 255, 0, 0, 0, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 255, 238, 238, 238, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 30, 30, 30, 255, 190, 190, 190, 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, 170, 170, 170, 255, 48, 48, 48, 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, 55, 55, 55, 255, 163, 163, 163, 255, 255, 255, 255, 255, 40, 40, 40, 255, 0, 0, 0, 255, 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 2, 2, 0, 255, 20, 20, 179, 255, 21, 21, 143, 128, 10, 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, 119, 167, 191, 0, 254, 255, 255, 196, 255, 255, 255, 255, 255, 255, 255, 255, 221, 243, 255, 43, 16, 48, 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, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 255, 132, 132, 132, 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, 248, 248, 248, 255, 26, 26, 26, 255, 188, 188, 188, 255, 146, 146, 146, 255, 141, 141, 141, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 85, 85, 85, 255, 0, 0, 0, 255, 0, 0, 0, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 255, 95, 95, 95, 255, 102, 102, 102, 255, 102, 102, 102, 255, 102, 102, 102, 255, 102, 102, 102, 255, 102, 102, 102, 255, 12, 12, 12, 255, 76, 76, 76, 255, 102, 102, 102, 255, 102, 102, 102, 255, 102, 102, 102, 255, 102, 102, 102, 255, 102, 102, 102, 255, 102, 102, 102, 255, 68, 68, 68, 255, 19, 19, 19, 255, 102, 102, 102, 255, 102, 102, 102, 255, 102, 102, 102, 255, 102, 102, 102, 255, 102, 102, 102, 255, 102, 102, 102, 255, 102, 102, 102, 255, 22, 22, 22, 255, 65, 65, 65, 255, 102, 102, 102, 255, 16, 16, 16, 255, 0, 0, 0, 255, 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 5, 5, 0, 255, 21, 21, 84, 255, 22, 22, 255, 255, 22, 22, 253, 255, 19, 19, 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, 12, 44, 64, 0, 53, 181, 255, 38, 66, 192, 255, 180, 211, 240, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255, 96, 202, 255, 238, 65, 192, 255, 128, 49, 142, 191, 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, 197, 0, 0, 0, 255, 200, 200, 200, 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, 203, 203, 203, 255, 252, 252, 252, 255, 49, 49, 49, 255, 241, 241, 241, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 141, 141, 141, 255, 0, 0, 0, 255, 0, 0, 0, 133, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 255, 143, 143, 143, 255, 117, 117, 117, 255, 14, 14, 14, 255, 153, 153, 153, 255, 153, 153, 153, 255, 153, 153, 153, 255, 148, 148, 148, 255, 152, 152, 152, 255, 153, 153, 153, 255, 153, 153, 153, 255, 48, 48, 48, 255, 83, 83, 83, 255, 153, 153, 153, 255, 153, 153, 153, 255, 153, 153, 153, 255, 153, 153, 153, 255, 153, 153, 153, 255, 153, 153, 153, 255, 134, 134, 134, 255, 0, 0, 0, 255, 152, 152, 152, 255, 153, 153, 153, 255, 153, 153, 153, 255, 153, 153, 153, 255, 153, 153, 153, 255, 153, 153, 153, 255, 24, 24, 24, 255, 0, 0, 0, 255, 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 12, 12, 8, 255, 21, 21, 223, 247, 112, 29, 255, 250, 76, 26, 255, 255, 21, 21, 188, 128, 10, 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, 16, 48, 64, 0, 61, 189, 255, 53, 67, 193, 255, 240, 67, 193, 255, 255, 211, 240, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 96, 203, 255, 255, 67, 193, 255, 255, 65, 192, 255, 188, 49, 142, 191, 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, 14, 0, 0, 0, 250, 15, 15, 15, 255, 252, 252, 252, 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, 228, 228, 228, 255, 57, 57, 57, 255, 94, 94, 94, 255, 208, 208, 208, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 197, 197, 197, 255, 0, 0, 0, 255, 0, 0, 0, 188, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 255, 238, 238, 238, 255, 195, 195, 195, 255, 23, 23, 23, 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, 80, 80, 80, 255, 138, 138, 138, 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, 223, 223, 223, 255, 0, 0, 0, 255, 253, 253, 253, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 40, 40, 40, 255, 0, 0, 0, 255, 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 2, 2, 0, 255, 20, 20, 123, 254, 35, 23, 255, 242, 167, 33, 255, 242, 163, 33, 255, 255, 23, 22, 255, 255, 12, 12, 76, 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, 0, 0, 0, 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, 143, 191, 7, 66, 192, 255, 222, 67, 193, 255, 255, 67, 193, 255, 255, 211, 240, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 96, 203, 255, 255, 67, 193, 255, 255, 67, 193, 255, 255, 65, 192, 255, 130, 16, 48, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 0, 0, 0, 255, 79, 79, 79, 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, 193, 193, 193, 255, 77, 77, 77, 255, 70, 70, 70, 255, 183, 183, 183, 255, 255, 255, 255, 255, 255, 255, 255, 255, 247, 247, 247, 255, 6, 6, 6, 255, 0, 0, 0, 242, 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, 235, 0, 0, 0, 255, 238, 238, 238, 255, 195, 195, 195, 255, 23, 23, 23, 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, 80, 80, 80, 255, 138, 138, 138, 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, 223, 223, 223, 255, 0, 0, 0, 255, 253, 253, 253, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 40, 40, 40, 255, 0, 0, 0, 255, 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 9, 9, 27, 255, 22, 22, 243, 244, 148, 32, 255, 250, 85, 28, 255, 247, 121, 31, 255, 248, 104, 28, 255, 255, 21, 21, 215, 191, 12, 12, 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, 65, 191, 255, 88, 67, 193, 255, 255, 67, 193, 255, 255, 67, 193, 255, 255, 211, 240, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 96, 203, 255, 255, 67, 193, 255, 255, 67, 193, 255, 255, 66, 192, 255, 239, 44, 140, 191, 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, 143, 0, 0, 0, 255, 146, 146, 146, 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, 248, 248, 248, 255, 230, 230, 230, 255, 230, 230, 230, 255, 230, 230, 230, 255, 191, 191, 191, 255, 83, 83, 83, 255, 51, 51, 51, 255, 150, 150, 150, 255, 225, 225, 225, 255, 46, 46, 46, 255, 0, 0, 0, 255, 0, 0, 0, 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 255, 238, 238, 238, 255, 195, 195, 195, 255, 23, 23, 23, 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, 80, 80, 80, 255, 138, 138, 138, 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, 223, 223, 223, 255, 0, 0, 0, 255, 253, 253, 253, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 40, 40, 40, 255, 0, 0, 0, 255, 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 9, 9, 0, 255, 20, 20, 162, 252, 55, 24, 255, 236, 249, 40, 255, 250, 85, 28, 255, 247, 121, 31, 255, 237, 227, 39, 255, 254, 30, 23, 255, 255, 21, 21, 111, 64, 5, 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, 32, 95, 128, 0, 66, 191, 255, 146, 67, 193, 255, 255, 67, 193, 255, 255, 67, 193, 255, 255, 211, 240, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 96, 203, 255, 255, 67, 193, 255, 255, 67, 193, 255, 255, 67, 193, 255, 255, 64, 191, 255, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 209, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 98, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 235, 0, 0, 0, 255, 238, 238, 238, 255, 195, 195, 195, 255, 23, 23, 23, 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, 80, 80, 80, 255, 138, 138, 138, 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, 223, 223, 223, 255, 0, 0, 0, 255, 253, 253, 253, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 40, 40, 40, 255, 0, 0, 0, 255, 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 19, 19, 56, 255, 22, 22, 254, 241, 184, 35, 255, 235, 255, 41, 255, 250, 85, 28, 255, 247, 121, 31, 255, 235, 255, 41, 255, 245, 138, 31, 255, 255, 22, 22, 239, 191, 13, 13, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 95, 128, 0, 67, 192, 255, 157, 67, 193, 255, 255, 67, 193, 255, 255, 67, 193, 255, 255, 191, 234, 255, 255, 255, 255, 255, 255, 251, 254, 255, 255, 81, 198, 255, 255, 67, 193, 255, 255, 67, 193, 255, 255, 67, 193, 255, 255, 66, 192, 255, 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, 158, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 242, 0, 0, 0, 230, 0, 0, 0, 230, 0, 0, 0, 230, 0, 0, 0, 230, 0, 0, 0, 230, 0, 0, 0, 230, 0, 0, 0, 230, 0, 0, 0, 230, 0, 0, 0, 230, 0, 0, 0, 230, 0, 0, 0, 230, 0, 0, 0, 230, 0, 0, 0, 230, 0, 0, 0, 205, 0, 0, 0, 204, 0, 0, 0, 204, 0, 0, 0, 204, 0, 0, 0, 204, 0, 0, 0, 192, 0, 0, 0, 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 255, 48, 48, 48, 255, 39, 39, 39, 255, 5, 5, 5, 255, 51, 51, 51, 255, 51, 51, 51, 255, 51, 51, 51, 255, 51, 51, 51, 255, 51, 51, 51, 255, 51, 51, 51, 255, 51, 51, 51, 255, 16, 16, 16, 255, 28, 28, 28, 255, 51, 51, 51, 255, 51, 51, 51, 255, 51, 51, 51, 255, 51, 51, 51, 255, 51, 51, 51, 255, 51, 51, 51, 255, 45, 45, 45, 255, 0, 0, 0, 255, 51, 51, 51, 255, 51, 51, 51, 255, 51, 51, 51, 255, 51, 51, 51, 255, 51, 51, 51, 255, 51, 51, 51, 255, 8, 8, 8, 255, 0, 0, 0, 255, 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 2, 2, 2, 255, 21, 21, 203, 249, 88, 27, 255, 235, 255, 41, 255, 235, 255, 41, 255, 249, 95, 29, 255, 245, 132, 31, 255, 235, 255, 41, 255, 236, 246, 40, 255, 253, 49, 24, 255, 255, 16, 16, 152, 128, 5, 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, 16, 48, 64, 0, 65, 192, 255, 120, 67, 193, 255, 255, 67, 193, 255, 255, 67, 193, 255, 255, 94, 202, 255, 255, 181, 230, 255, 255, 132, 214, 255, 255, 67, 193, 255, 255, 67, 193, 255, 255, 67, 193, 255, 255, 67, 193, 255, 253, 63, 191, 255, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 255, 190, 190, 190, 255, 204, 204, 204, 255, 204, 204, 204, 255, 204, 204, 204, 255, 204, 204, 204, 255, 204, 204, 204, 255, 44, 44, 44, 255, 132, 132, 132, 255, 204, 204, 204, 255, 204, 204, 204, 255, 204, 204, 204, 255, 204, 204, 204, 255, 204, 204, 204, 255, 204, 204, 204, 255, 156, 156, 156, 255, 18, 18, 18, 255, 204, 204, 204, 255, 204, 204, 204, 255, 204, 204, 204, 255, 204, 204, 204, 255, 204, 204, 204, 255, 204, 204, 204, 255, 204, 204, 204, 255, 66, 66, 66, 255, 110, 110, 110, 255, 204, 204, 204, 255, 32, 32, 32, 255, 0, 0, 0, 255, 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 4, 4, 0, 255, 19, 19, 100, 255, 27, 22, 255, 238, 218, 38, 255, 235, 255, 41, 255, 235, 255, 41, 255, 237, 234, 39, 255, 236, 247, 40, 255, 235, 255, 41, 255, 235, 255, 41, 255, 242, 174, 34, 255, 255, 22, 22, 252, 255, 19, 19, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 187, 255, 34, 67, 193, 255, 250, 67, 193, 255, 255, 67, 193, 255, 255, 67, 193, 255, 255, 67, 193, 255, 255, 67, 193, 255, 255, 67, 193, 255, 255, 67, 193, 255, 255, 67, 193, 255, 255, 65, 192, 255, 185, 32, 96, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 255, 238, 238, 238, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 55, 55, 55, 255, 165, 165, 165, 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, 195, 195, 195, 255, 23, 23, 23, 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, 83, 83, 83, 255, 138, 138, 138, 255, 255, 255, 255, 255, 40, 40, 40, 255, 0, 0, 0, 255, 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 13, 13, 16, 255, 22, 22, 234, 246, 127, 30, 255, 235, 255, 41, 255, 235, 255, 41, 255, 235, 255, 41, 255, 246, 130, 31, 255, 242, 171, 35, 255, 235, 255, 41, 255, 235, 255, 41, 255, 235, 255, 41, 255, 250, 77, 26, 255, 255, 21, 21, 192, 191, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 47, 64, 0, 66, 192, 255, 128, 67, 193, 255, 255, 67, 193, 255, 255, 67, 193, 255, 255, 67, 193, 255, 255, 67, 193, 255, 255, 67, 193, 255, 255, 67, 193, 255, 255, 67, 193, 255, 242, 64, 191, 255, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 255, 238, 238, 238, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 55, 55, 55, 255, 165, 165, 165, 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, 195, 195, 195, 255, 23, 23, 23, 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, 83, 83, 83, 255, 138, 138, 138, 255, 255, 255, 255, 255, 40, 40, 40, 255, 0, 0, 0, 255, 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 5, 5, 0, 255, 15, 15, 142, 255, 24, 22, 255, 244, 149, 32, 255, 243, 162, 33, 255, 243, 162, 33, 255, 243, 162, 33, 255, 244, 154, 32, 255, 243, 162, 33, 255, 243, 162, 33, 255, 243, 162, 33, 255, 243, 162, 33, 255, 247, 119, 29, 255, 255, 22, 22, 255, 255, 21, 21, 84, 64, 5, 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, 32, 128, 191, 2, 66, 192, 255, 128, 67, 193, 255, 251, 67, 193, 255, 255, 67, 193, 255, 255, 67, 193, 255, 255, 67, 193, 255, 255, 67, 193, 255, 224, 51, 186, 255, 56, 15, 47, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 255, 221, 221, 221, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 55, 55, 55, 255, 165, 165, 165, 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, 195, 195, 195, 255, 23, 23, 23, 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, 83, 83, 83, 255, 138, 138, 138, 255, 254, 254, 254, 255, 25, 25, 25, 255, 0, 0, 0, 255, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 10, 10, 0, 255, 20, 20, 158, 255, 22, 22, 230, 255, 22, 22, 230, 255, 22, 22, 230, 255, 22, 22, 230, 255, 22, 22, 230, 255, 22, 22, 230, 255, 22, 22, 230, 255, 22, 22, 230, 255, 22, 22, 230, 255, 22, 22, 230, 255, 22, 22, 230, 255, 22, 22, 230, 255, 15, 15, 114, 128, 4, 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, 15, 47, 64, 0, 60, 187, 255, 34, 63, 190, 255, 120, 66, 191, 255, 155, 65, 191, 255, 149, 65, 191, 255, 91, 46, 140, 191, 8, 9, 46, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 170, 0, 0, 0, 255, 50, 50, 50, 255, 128, 128, 128, 255, 128, 128, 128, 255, 128, 128, 128, 255, 128, 128, 128, 255, 128, 128, 128, 255, 28, 28, 28, 255, 83, 83, 83, 255, 128, 128, 128, 255, 128, 128, 128, 255, 128, 128, 128, 255, 128, 128, 128, 255, 128, 128, 128, 255, 128, 128, 128, 255, 98, 98, 98, 255, 11, 11, 11, 255, 128, 128, 128, 255, 128, 128, 128, 255, 128, 128, 128, 255, 128, 128, 128, 255, 128, 128, 128, 255, 128, 128, 128, 255, 128, 128, 128, 255, 41, 41, 41, 255, 69, 69, 69, 255, 79, 79, 79, 255, 0, 0, 0, 255, 0, 0, 0, 227, 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, 128, 10, 10, 0, 128, 11, 11, 0, 128, 11, 11, 0, 128, 11, 11, 0, 128, 11, 11, 0, 128, 11, 11, 0, 128, 11, 11, 0, 128, 11, 11, 0, 128, 11, 11, 0, 128, 11, 11, 0, 128, 11, 11, 0, 128, 11, 11, 0, 128, 11, 11, 0, 128, 5, 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, 14, 46, 64, 0, 33, 95, 128, 0, 31, 94, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 226, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 244, 0, 0, 0, 71, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 99, 0, 0, 0, 128, 0, 0, 0, 128, 0, 0, 0, 128, 0, 0, 0, 128, 0, 0, 0, 128, 0, 0, 0, 128, 0, 0, 0, 128, 0, 0, 0, 128, 0, 0, 0, 128, 0, 0, 0, 128, 0, 0, 0, 128, 0, 0, 0, 128, 0, 0, 0, 128, 0, 0, 0, 128, 0, 0, 0, 128, 0, 0, 0, 128, 0, 0, 0, 128, 0, 0, 0, 128, 0, 0, 0, 128, 0, 0, 0, 128, 0, 0, 0, 128, 0, 0, 0, 128, 0, 0, 0, 128, 0, 0, 0, 128, 0, 0, 0, 111, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 64, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 64, 64, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 128, 0, 128, 128, 128, 0, 191, 20, 20, 5, 128, 75, 75, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 77, 77, 0, 191, 17, 17, 5, 128, 128, 128, 0, 128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 191, 191, 4, 191, 191, 191, 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, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 64, 64, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 191, 191, 7, 255, 255, 255, 83, 64, 64, 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, 0, 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, 128, 128, 0, 255, 255, 255, 173, 255, 255, 255, 230, 255, 255, 255, 230, 255, 255, 255, 230, 255, 255, 255, 230, 255, 255, 255, 230, 255, 255, 255, 230, 255, 255, 255, 230, 255, 255, 255, 230, 255, 255, 255, 230, 255, 255, 255, 230, 255, 255, 255, 230, 255, 255, 255, 230, 255, 255, 255, 230, 255, 255, 255, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 128, 0, 255, 255, 255, 124, 255, 255, 255, 179, 255, 255, 255, 179, 255, 255, 255, 179, 255, 255, 255, 179, 255, 255, 255, 179, 255, 255, 255, 179, 255, 255, 255, 179, 255, 255, 255, 179, 255, 255, 255, 179, 255, 255, 255, 172, 128, 128, 128, 0, 128, 128, 128, 0, 255, 255, 255, 131, 255, 243, 243, 179, 255, 45, 45, 222, 255, 123, 123, 195, 255, 255, 255, 179, 255, 255, 255, 179, 255, 255, 255, 179, 255, 255, 255, 179, 255, 255, 255, 179, 255, 255, 255, 179, 255, 133, 133, 192, 255, 38, 38, 225, 255, 240, 240, 179, 255, 255, 255, 138, 128, 128, 128, 0, 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, 191, 191, 4, 255, 255, 255, 167, 255, 255, 255, 186, 191, 191, 191, 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, 128, 128, 128, 0, 255, 255, 255, 228, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 128, 128, 0, 128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 95, 255, 255, 255, 255, 255, 255, 255, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 128, 0, 64, 64, 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, 0, 128, 128, 128, 0, 255, 255, 255, 193, 255, 255, 255, 224, 255, 255, 255, 153, 255, 255, 255, 153, 255, 255, 255, 153, 255, 255, 255, 153, 255, 255, 255, 153, 255, 255, 255, 153, 255, 255, 255, 153, 255, 255, 255, 153, 255, 255, 255, 153, 255, 255, 255, 153, 255, 255, 255, 192, 255, 255, 255, 255, 255, 255, 255, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 128, 0, 255, 255, 255, 178, 255, 255, 255, 247, 255, 255, 255, 204, 255, 255, 255, 204, 255, 255, 255, 204, 255, 255, 255, 204, 255, 255, 255, 204, 255, 255, 255, 204, 255, 255, 255, 204, 255, 255, 255, 233, 255, 255, 255, 245, 128, 128, 128, 0, 128, 128, 128, 0, 255, 244, 244, 188, 255, 62, 62, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 126, 126, 232, 255, 255, 255, 179, 255, 255, 255, 179, 255, 255, 255, 179, 255, 255, 255, 179, 255, 135, 135, 229, 255, 1, 1, 255, 255, 0, 0, 255, 255, 56, 56, 255, 255, 241, 241, 198, 128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 191, 191, 191, 3, 255, 255, 255, 166, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 185, 191, 191, 191, 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, 128, 128, 128, 0, 255, 255, 255, 228, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 128, 128, 0, 255, 255, 255, 149, 255, 255, 255, 164, 191, 191, 191, 1, 64, 64, 64, 0, 128, 128, 128, 0, 191, 191, 191, 10, 255, 255, 255, 126, 255, 255, 255, 255, 255, 255, 255, 24, 128, 128, 128, 0, 64, 64, 64, 0, 0, 0, 0, 0, 191, 191, 191, 19, 255, 255, 255, 160, 255, 255, 255, 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, 128, 128, 128, 0, 255, 255, 255, 193, 255, 255, 255, 178, 191, 191, 191, 0, 128, 128, 128, 0, 128, 128, 128, 0, 51, 255, 32, 26, 26, 255, 0, 204, 26, 255, 0, 204, 53, 255, 32, 90, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 255, 255, 255, 98, 255, 255, 255, 255, 255, 255, 255, 18, 64, 64, 64, 0, 255, 255, 255, 66, 255, 255, 255, 102, 255, 255, 255, 102, 255, 255, 255, 209, 255, 255, 255, 213, 191, 191, 191, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 191, 191, 191, 0, 255, 255, 255, 145, 255, 255, 255, 245, 128, 128, 128, 0, 191, 22, 22, 9, 255, 53, 53, 224, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 21, 21, 110, 191, 128, 128, 0, 191, 128, 128, 0, 255, 21, 21, 102, 255, 0, 0, 254, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 48, 48, 230, 191, 21, 21, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 191, 191, 191, 3, 255, 255, 255, 166, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 184, 191, 191, 191, 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, 128, 128, 128, 0, 255, 255, 255, 228, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 64, 64, 0, 255, 255, 255, 93, 255, 255, 255, 255, 255, 255, 255, 122, 255, 255, 255, 100, 255, 255, 255, 207, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 231, 255, 255, 255, 130, 255, 255, 255, 31, 255, 255, 255, 191, 255, 255, 255, 241, 255, 255, 255, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 128, 128, 0, 255, 255, 255, 193, 255, 255, 255, 178, 128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 255, 0, 33, 26, 255, 0, 255, 26, 255, 0, 255, 24, 255, 0, 113, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 98, 255, 255, 255, 255, 255, 255, 255, 18, 128, 128, 128, 0, 255, 255, 255, 165, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 213, 128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 128, 0, 255, 255, 255, 145, 255, 255, 255, 245, 128, 128, 128, 0, 191, 29, 29, 3, 255, 80, 80, 215, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 108, 255, 0, 0, 99, 255, 0, 0, 254, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 73, 73, 223, 191, 28, 28, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 191, 191, 191, 3, 255, 255, 255, 164, 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, 184, 191, 191, 191, 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, 128, 128, 128, 0, 255, 255, 255, 228, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 128, 128, 0, 255, 255, 255, 163, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 194, 255, 255, 255, 112, 255, 255, 255, 76, 255, 255, 255, 72, 255, 255, 255, 101, 255, 255, 255, 164, 255, 255, 255, 249, 255, 255, 255, 251, 255, 255, 255, 253, 255, 255, 255, 74, 64, 64, 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, 0, 128, 128, 128, 0, 255, 255, 255, 193, 255, 255, 255, 178, 128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 255, 0, 33, 26, 255, 0, 255, 26, 255, 0, 255, 24, 255, 0, 113, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 98, 255, 255, 255, 255, 255, 255, 255, 18, 128, 128, 128, 0, 255, 255, 255, 165, 255, 255, 255, 231, 255, 255, 255, 51, 255, 255, 255, 193, 255, 255, 255, 213, 128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 128, 0, 255, 255, 255, 145, 255, 255, 255, 245, 128, 128, 128, 0, 128, 128, 128, 0, 255, 252, 252, 188, 255, 81, 81, 247, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 254, 255, 0, 0, 253, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 73, 73, 248, 255, 250, 250, 198, 128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 191, 191, 191, 3, 255, 255, 255, 164, 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, 183, 191, 191, 191, 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, 128, 128, 128, 0, 255, 255, 255, 228, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 42, 255, 255, 255, 238, 255, 255, 255, 226, 255, 255, 255, 56, 128, 128, 128, 0, 191, 191, 191, 31, 255, 255, 255, 159, 255, 255, 255, 172, 255, 255, 255, 66, 191, 191, 191, 0, 255, 255, 255, 24, 255, 255, 255, 187, 255, 255, 255, 254, 255, 255, 255, 96, 64, 64, 64, 0, 191, 191, 191, 3, 255, 255, 255, 15, 64, 64, 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, 191, 191, 191, 6, 191, 191, 191, 10, 128, 128, 128, 0, 255, 255, 255, 193, 255, 255, 255, 178, 53, 255, 32, 52, 25, 255, 0, 77, 25, 255, 0, 77, 24, 255, 0, 99, 26, 255, 0, 255, 26, 255, 0, 255, 25, 255, 0, 155, 25, 255, 0, 77, 25, 255, 0, 77, 25, 255, 0, 76, 226, 255, 223, 98, 255, 255, 255, 255, 255, 255, 255, 18, 128, 128, 128, 0, 255, 255, 255, 165, 255, 255, 255, 225, 255, 255, 255, 0, 255, 255, 255, 178, 255, 255, 255, 213, 128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 128, 0, 255, 255, 255, 145, 255, 255, 255, 245, 128, 128, 128, 0, 128, 128, 128, 0, 255, 255, 255, 188, 255, 246, 246, 180, 255, 0, 0, 170, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 178, 255, 239, 239, 172, 255, 255, 255, 198, 128, 128, 128, 0, 0, 0, 0, 0, 128, 128, 128, 0, 255, 255, 255, 112, 255, 255, 255, 204, 255, 255, 255, 204, 255, 255, 255, 204, 255, 255, 255, 253, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 207, 255, 255, 255, 204, 255, 255, 255, 204, 255, 255, 255, 131, 191, 191, 191, 0, 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, 128, 128, 0, 255, 255, 255, 228, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 191, 191, 1, 255, 255, 255, 195, 255, 255, 255, 226, 191, 191, 191, 23, 64, 64, 64, 0, 191, 191, 191, 0, 255, 255, 255, 211, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 247, 255, 255, 255, 33, 0, 0, 0, 0, 191, 191, 191, 4, 255, 255, 255, 176, 255, 255, 255, 240, 255, 255, 255, 26, 255, 255, 255, 32, 255, 255, 255, 254, 255, 255, 255, 92, 64, 64, 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, 191, 191, 191, 26, 255, 255, 255, 230, 255, 255, 255, 111, 128, 128, 128, 0, 255, 255, 255, 193, 255, 255, 255, 178, 26, 255, 0, 173, 26, 255, 0, 255, 26, 255, 0, 255, 26, 255, 0, 255, 26, 255, 0, 255, 26, 255, 0, 255, 26, 255, 0, 255, 26, 255, 0, 255, 26, 255, 0, 255, 26, 255, 0, 253, 198, 255, 191, 98, 255, 255, 255, 255, 255, 255, 255, 18, 128, 128, 128, 0, 255, 255, 255, 165, 255, 255, 255, 225, 255, 255, 255, 0, 255, 255, 255, 178, 255, 255, 255, 213, 128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 128, 0, 255, 255, 255, 145, 255, 255, 255, 245, 128, 128, 128, 0, 128, 128, 128, 0, 255, 255, 255, 188, 255, 255, 255, 178, 255, 85, 85, 5, 255, 0, 0, 173, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 181, 255, 85, 85, 7, 255, 255, 255, 168, 255, 255, 255, 198, 128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 191, 191, 191, 0, 255, 255, 255, 245, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 13, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 64, 64, 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, 128, 128, 128, 0, 255, 255, 255, 228, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 45, 255, 255, 255, 255, 255, 255, 255, 111, 128, 128, 128, 0, 0, 0, 0, 0, 255, 255, 255, 20, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 89, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 41, 255, 255, 255, 255, 255, 255, 255, 115, 191, 191, 191, 1, 255, 255, 255, 160, 255, 255, 255, 250, 255, 255, 255, 78, 64, 64, 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, 191, 191, 191, 15, 255, 255, 255, 198, 255, 255, 255, 229, 191, 191, 191, 24, 128, 128, 128, 0, 255, 255, 255, 193, 255, 255, 255, 178, 26, 255, 0, 173, 26, 255, 0, 255, 26, 255, 0, 255, 26, 255, 0, 255, 26, 255, 0, 255, 26, 255, 0, 255, 26, 255, 0, 255, 26, 255, 0, 255, 26, 255, 0, 255, 26, 255, 0, 253, 198, 255, 191, 98, 255, 255, 255, 255, 255, 255, 255, 18, 128, 128, 128, 0, 255, 255, 255, 165, 255, 255, 255, 225, 255, 255, 255, 0, 255, 255, 255, 178, 255, 255, 255, 213, 128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 128, 0, 255, 255, 255, 145, 255, 255, 255, 245, 128, 128, 128, 0, 128, 128, 128, 0, 255, 255, 255, 188, 255, 255, 255, 178, 191, 128, 128, 0, 255, 0, 0, 94, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 104, 191, 128, 128, 0, 255, 255, 255, 168, 255, 255, 255, 198, 128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 128, 0, 255, 255, 255, 245, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 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, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 191, 191, 191, 0, 255, 255, 255, 228, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 33, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 64, 64, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 191, 191, 5, 255, 255, 255, 209, 255, 255, 255, 215, 191, 191, 191, 13, 0, 0, 0, 0, 191, 191, 191, 1, 255, 255, 255, 222, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 252, 255, 255, 255, 41, 0, 0, 0, 0, 191, 191, 191, 1, 255, 255, 255, 158, 255, 255, 255, 247, 255, 255, 255, 36, 0, 0, 0, 0, 191, 191, 191, 5, 255, 255, 255, 184, 255, 255, 255, 253, 255, 255, 255, 137, 191, 191, 191, 18, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 191, 191, 191, 0, 255, 255, 255, 66, 255, 255, 255, 219, 255, 255, 255, 251, 255, 255, 255, 61, 64, 64, 64, 0, 128, 128, 128, 0, 255, 255, 255, 193, 255, 255, 255, 178, 52, 255, 32, 35, 25, 255, 0, 51, 25, 255, 0, 51, 24, 255, 0, 77, 26, 255, 0, 255, 26, 255, 0, 255, 25, 255, 0, 141, 25, 255, 0, 51, 25, 255, 0, 51, 25, 255, 0, 51, 226, 255, 223, 98, 255, 255, 255, 255, 255, 255, 255, 18, 128, 128, 128, 0, 255, 255, 255, 165, 255, 255, 255, 225, 255, 255, 255, 0, 255, 255, 255, 178, 255, 255, 255, 213, 191, 191, 191, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 191, 191, 191, 0, 255, 255, 255, 145, 255, 255, 255, 245, 128, 128, 128, 0, 128, 128, 128, 0, 255, 255, 255, 188, 255, 255, 255, 178, 255, 21, 21, 86, 255, 0, 0, 252, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 253, 255, 21, 21, 95, 255, 255, 255, 168, 255, 255, 255, 198, 128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 128, 0, 255, 255, 255, 245, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 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, 128, 128, 128, 0, 255, 255, 255, 95, 255, 255, 255, 204, 255, 255, 255, 204, 255, 255, 255, 204, 255, 255, 255, 250, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 211, 255, 255, 255, 204, 255, 255, 255, 204, 255, 255, 255, 143, 191, 191, 191, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 55, 255, 255, 255, 247, 255, 255, 255, 211, 255, 255, 255, 35, 191, 191, 191, 0, 255, 255, 255, 45, 255, 255, 255, 183, 255, 255, 255, 197, 255, 255, 255, 87, 128, 128, 128, 0, 191, 191, 191, 11, 255, 255, 255, 165, 255, 255, 255, 255, 255, 255, 255, 116, 64, 64, 64, 0, 0, 0, 0, 0, 191, 191, 191, 10, 255, 255, 255, 205, 255, 255, 255, 237, 255, 255, 255, 252, 255, 255, 255, 249, 255, 255, 255, 186, 255, 255, 255, 152, 255, 255, 255, 142, 255, 255, 255, 168, 255, 255, 255, 220, 255, 255, 255, 255, 255, 255, 255, 222, 255, 255, 255, 252, 255, 255, 255, 149, 128, 128, 128, 0, 128, 128, 128, 0, 255, 255, 255, 193, 255, 255, 255, 178, 128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 255, 0, 33, 26, 255, 0, 255, 26, 255, 0, 255, 24, 255, 0, 113, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 98, 255, 255, 255, 255, 255, 255, 255, 18, 128, 128, 128, 0, 255, 255, 255, 165, 255, 255, 255, 225, 255, 255, 255, 0, 255, 255, 255, 178, 255, 255, 255, 238, 255, 255, 255, 153, 255, 255, 255, 153, 255, 255, 255, 153, 255, 255, 255, 153, 255, 255, 255, 153, 255, 255, 255, 153, 255, 255, 255, 153, 255, 255, 255, 211, 255, 255, 255, 245, 128, 128, 128, 0, 128, 128, 128, 0, 255, 255, 255, 188, 255, 157, 157, 221, 255, 0, 0, 251, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 253, 255, 145, 145, 220, 255, 255, 255, 198, 128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 128, 0, 255, 255, 255, 245, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 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, 191, 191, 191, 1, 255, 255, 255, 145, 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, 194, 191, 191, 191, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 64, 64, 0, 255, 255, 255, 54, 255, 255, 255, 230, 255, 255, 255, 251, 255, 255, 255, 169, 255, 255, 255, 87, 255, 255, 255, 52, 255, 255, 255, 41, 255, 255, 255, 77, 255, 255, 255, 140, 255, 255, 255, 238, 255, 255, 255, 250, 255, 255, 255, 103, 64, 64, 64, 0, 0, 0, 0, 0, 128, 128, 128, 0, 255, 255, 255, 149, 255, 255, 255, 244, 255, 255, 255, 47, 255, 255, 255, 29, 255, 255, 255, 126, 255, 255, 255, 184, 255, 255, 255, 225, 255, 255, 255, 255, 255, 255, 255, 196, 255, 255, 255, 163, 255, 255, 255, 74, 191, 191, 191, 3, 255, 255, 255, 102, 255, 255, 255, 255, 255, 255, 255, 66, 128, 128, 128, 0, 255, 255, 255, 193, 255, 255, 255, 178, 128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 255, 0, 33, 26, 255, 0, 255, 26, 255, 0, 255, 24, 255, 0, 113, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 98, 255, 255, 255, 255, 255, 255, 255, 18, 128, 128, 128, 0, 255, 255, 255, 165, 255, 255, 255, 225, 255, 255, 255, 0, 255, 255, 255, 160, 255, 255, 255, 230, 255, 255, 255, 230, 255, 255, 255, 230, 255, 255, 255, 230, 255, 255, 255, 230, 255, 255, 255, 230, 255, 255, 255, 251, 255, 255, 255, 244, 255, 255, 255, 230, 255, 255, 255, 221, 128, 128, 128, 0, 128, 86, 86, 0, 255, 167, 167, 193, 255, 5, 5, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 189, 255, 0, 0, 182, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 3, 3, 255, 255, 160, 160, 204, 128, 85, 85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 128, 0, 255, 255, 255, 245, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 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, 191, 191, 191, 1, 255, 255, 255, 146, 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, 195, 191, 191, 191, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 64, 64, 0, 191, 191, 191, 21, 255, 255, 255, 125, 255, 255, 255, 229, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 246, 255, 255, 255, 155, 255, 255, 255, 44, 64, 64, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 64, 64, 0, 255, 255, 255, 83, 255, 255, 255, 63, 64, 64, 64, 0, 0, 0, 0, 0, 64, 64, 64, 0, 128, 128, 128, 0, 255, 255, 255, 92, 255, 255, 255, 255, 255, 255, 255, 10, 128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 64, 64, 0, 255, 255, 255, 53, 191, 191, 191, 21, 128, 128, 128, 0, 255, 255, 255, 193, 255, 255, 255, 178, 191, 191, 191, 0, 128, 128, 128, 0, 128, 128, 128, 0, 51, 255, 32, 23, 26, 255, 0, 179, 26, 255, 0, 179, 53, 255, 32, 79, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 255, 255, 255, 98, 255, 255, 255, 255, 255, 255, 255, 18, 128, 128, 128, 0, 255, 255, 255, 165, 255, 255, 255, 225, 191, 191, 191, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 228, 255, 255, 255, 160, 191, 191, 191, 0, 128, 128, 128, 0, 0, 0, 0, 0, 255, 0, 0, 12, 255, 11, 11, 243, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 192, 191, 0, 0, 11, 191, 0, 0, 8, 255, 0, 0, 185, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 10, 10, 248, 255, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 128, 0, 255, 255, 255, 245, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 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, 191, 191, 191, 1, 255, 255, 255, 147, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 196, 191, 191, 191, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 64, 64, 0, 191, 191, 191, 2, 255, 255, 255, 34, 255, 255, 255, 67, 255, 255, 255, 74, 255, 255, 255, 41, 191, 191, 191, 9, 128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 44, 255, 255, 255, 200, 191, 191, 191, 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, 128, 128, 128, 0, 255, 255, 255, 193, 255, 255, 255, 232, 255, 255, 255, 179, 255, 255, 255, 179, 255, 255, 255, 179, 255, 255, 255, 179, 255, 255, 255, 179, 255, 255, 255, 179, 255, 255, 255, 179, 255, 255, 255, 179, 255, 255, 255, 179, 255, 255, 255, 179, 255, 255, 255, 208, 255, 255, 255, 255, 255, 255, 255, 18, 128, 128, 128, 0, 255, 255, 255, 165, 255, 255, 255, 243, 255, 255, 255, 153, 255, 255, 255, 153, 255, 255, 255, 153, 255, 255, 255, 153, 255, 255, 255, 153, 255, 255, 255, 153, 255, 255, 255, 153, 255, 255, 255, 153, 255, 255, 255, 244, 255, 255, 255, 160, 128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 93, 93, 0, 255, 198, 198, 189, 255, 15, 15, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 53, 53, 239, 255, 149, 149, 114, 255, 255, 255, 102, 255, 255, 255, 102, 255, 149, 149, 111, 255, 58, 58, 236, 255, 0, 0, 255, 255, 0, 0, 255, 255, 12, 12, 255, 255, 190, 190, 200, 128, 92, 92, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 128, 0, 255, 255, 255, 245, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 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, 191, 191, 191, 1, 255, 255, 255, 148, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 196, 191, 191, 191, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 64, 64, 0, 191, 191, 191, 0, 0, 0, 0, 0, 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, 128, 128, 0, 255, 255, 255, 154, 255, 255, 255, 204, 255, 255, 255, 204, 255, 255, 255, 204, 255, 255, 255, 204, 255, 255, 255, 204, 255, 255, 255, 204, 255, 255, 255, 204, 255, 255, 255, 204, 255, 255, 255, 204, 255, 255, 255, 204, 255, 255, 255, 204, 255, 255, 255, 204, 255, 255, 255, 204, 255, 255, 255, 14, 128, 128, 128, 0, 255, 255, 255, 149, 255, 255, 255, 230, 255, 255, 255, 230, 255, 255, 255, 230, 255, 255, 255, 230, 255, 255, 255, 230, 255, 255, 255, 230, 255, 255, 255, 230, 255, 255, 255, 230, 255, 255, 255, 230, 255, 255, 255, 230, 255, 255, 255, 144, 128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 128, 0, 255, 255, 255, 188, 255, 199, 199, 255, 255, 14, 14, 255, 255, 58, 58, 255, 255, 242, 242, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 245, 245, 255, 255, 65, 65, 255, 255, 11, 11, 255, 255, 192, 192, 255, 255, 255, 255, 198, 128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 128, 0, 255, 255, 255, 245, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 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, 191, 191, 191, 1, 255, 255, 255, 148, 255, 255, 255, 197, 191, 191, 191, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 64, 64, 64, 0, 0, 0, 0, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 128, 0, 128, 94, 94, 0, 255, 0, 0, 52, 191, 25, 25, 14, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 191, 27, 27, 11, 255, 0, 0, 55, 128, 93, 93, 0, 128, 128, 128, 0, 0, 0, 0, 0, 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, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 128, 128, 128, 0, 64, 64, 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, 191, 191, 191, 1, 191, 191, 191, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 2, 101, 0, 0, 0, 71, 0, 0, 0, 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, 2, 2, 2, 92, 3, 3, 3, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 5, 178, 3, 0, 107, 254, 2, 0, 84, 255, 0, 0, 2, 164, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 8, 8, 188, 151, 151, 151, 254, 37, 37, 37, 225, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 27, 29, 29, 29, 220, 25, 25, 25, 213, 1, 1, 1, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 3, 0, 107, 254, 5, 0, 173, 255, 5, 0, 173, 255, 2, 0, 72, 255, 0, 0, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 176, 251, 251, 251, 255, 207, 207, 207, 254, 9, 9, 9, 180, 0, 0, 0, 24, 27, 27, 27, 215, 220, 220, 220, 255, 185, 185, 185, 255, 2, 2, 2, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 90, 2, 0, 76, 254, 5, 0, 173, 255, 5, 0, 173, 255, 5, 0, 170, 255, 1, 0, 61, 253, 0, 0, 0, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 145, 223, 223, 223, 255, 255, 255, 255, 255, 152, 152, 152, 255, 23, 23, 23, 236, 216, 216, 216, 255, 255, 255, 255, 255, 124, 124, 124, 254, 0, 0, 0, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 138, 71, 71, 71, 255, 77, 77, 77, 255, 77, 77, 77, 255, 77, 77, 77, 255, 77, 77, 77, 255, 77, 77, 77, 255, 69, 69, 69, 255, 61, 61, 61, 255, 77, 77, 77, 255, 77, 77, 77, 255, 77, 77, 77, 255, 77, 77, 77, 255, 77, 77, 77, 255, 77, 77, 77, 255, 3, 3, 3, 169, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52, 1, 0, 47, 244, 5, 0, 171, 255, 5, 0, 173, 255, 5, 0, 158, 255, 1, 0, 42, 242, 0, 0, 1, 86, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 94, 0, 0, 0, 80, 0, 0, 0, 77, 1, 1, 1, 160, 190, 190, 190, 255, 255, 255, 255, 255, 255, 255, 255, 255, 252, 252, 252, 255, 255, 255, 255, 255, 255, 255, 255, 255, 62, 62, 62, 240, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 155, 235, 235, 235, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 213, 213, 213, 255, 62, 62, 62, 239, 4, 4, 4, 177, 0, 0, 0, 165, 39, 39, 39, 227, 176, 176, 176, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 8, 8, 8, 185, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 1, 0, 25, 227, 5, 0, 162, 255, 5, 0, 173, 255, 4, 0, 136, 254, 1, 0, 19, 219, 0, 0, 0, 44, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 71, 105, 105, 105, 254, 157, 157, 157, 255, 153, 153, 153, 255, 149, 149, 149, 250, 238, 238, 238, 255, 252, 252, 252, 255, 190, 190, 190, 255, 196, 196, 196, 255, 254, 254, 254, 255, 255, 255, 255, 255, 22, 22, 22, 236, 0, 0, 0, 161, 0, 0, 0, 136, 6, 6, 6, 114, 0, 0, 0, 16, 0, 0, 0, 155, 235, 235, 235, 255, 255, 255, 255, 255, 255, 255, 255, 255, 217, 217, 217, 255, 10, 10, 10, 196, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 1, 1, 1, 150, 160, 160, 160, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 8, 8, 8, 185, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 18, 18, 18, 224, 28, 27, 46, 255, 4, 1, 130, 255, 3, 0, 106, 254, 0, 0, 5, 180, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 116, 124, 124, 124, 255, 252, 252, 252, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 73, 73, 73, 244, 0, 0, 0, 122, 1, 1, 1, 133, 101, 101, 101, 251, 255, 255, 255, 255, 255, 255, 255, 255, 237, 237, 237, 255, 212, 212, 212, 255, 131, 131, 131, 255, 2, 2, 2, 93, 0, 0, 0, 155, 235, 235, 235, 255, 255, 255, 255, 255, 255, 255, 255, 255, 72, 72, 72, 244, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 19, 19, 19, 204, 244, 244, 244, 255, 255, 255, 255, 255, 255, 255, 255, 255, 8, 8, 8, 185, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 7, 7, 7, 198, 148, 148, 148, 255, 177, 177, 177, 255, 8, 7, 18, 254, 0, 0, 0, 130, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 97, 46, 46, 46, 233, 197, 197, 197, 254, 255, 255, 255, 255, 218, 218, 218, 255, 0, 0, 0, 145, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 171, 243, 243, 243, 255, 255, 255, 255, 255, 255, 255, 255, 255, 234, 234, 234, 255, 107, 107, 107, 254, 3, 3, 3, 110, 0, 0, 0, 155, 235, 235, 235, 255, 255, 255, 255, 255, 251, 251, 251, 255, 9, 9, 9, 185, 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, 123, 198, 198, 198, 255, 255, 255, 255, 255, 255, 255, 255, 255, 8, 8, 8, 185, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 162, 12, 12, 12, 239, 14, 14, 14, 255, 45, 45, 45, 255, 170, 170, 170, 255, 49, 49, 49, 253, 1, 1, 1, 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, 18, 3, 3, 3, 220, 231, 231, 231, 255, 235, 235, 235, 255, 5, 5, 5, 182, 0, 0, 0, 2, 0, 0, 0, 6, 18, 18, 18, 206, 250, 250, 250, 255, 228, 228, 228, 255, 101, 101, 101, 254, 8, 8, 8, 181, 1, 1, 1, 69, 1, 1, 1, 0, 0, 0, 0, 155, 235, 235, 235, 255, 255, 255, 255, 255, 244, 244, 244, 255, 1, 1, 1, 169, 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, 105, 179, 179, 179, 255, 255, 255, 255, 255, 255, 255, 255, 255, 8, 8, 8, 185, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 53, 25, 0, 0, 239, 77, 0, 0, 255, 32, 11, 11, 255, 47, 47, 47, 255, 35, 35, 35, 255, 8, 8, 8, 237, 0, 0, 0, 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, 110, 134, 134, 134, 255, 255, 255, 255, 255, 255, 255, 255, 255, 163, 163, 163, 254, 33, 33, 33, 218, 39, 39, 39, 224, 182, 182, 182, 254, 255, 255, 255, 255, 175, 175, 175, 254, 0, 0, 0, 143, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 155, 235, 235, 235, 255, 255, 255, 255, 255, 255, 255, 255, 255, 37, 37, 37, 221, 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, 161, 229, 229, 229, 255, 255, 255, 255, 255, 255, 255, 255, 255, 8, 8, 8, 185, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 20, 0, 0, 207, 235, 0, 0, 255, 255, 0, 0, 255, 239, 0, 0, 255, 50, 4, 4, 255, 44, 44, 44, 255, 0, 0, 0, 134, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 73, 92, 92, 92, 250, 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, 75, 75, 75, 247, 0, 0, 0, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 155, 235, 235, 235, 255, 255, 255, 255, 255, 255, 255, 255, 255, 161, 161, 161, 254, 0, 0, 0, 124, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 63, 96, 96, 96, 251, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 8, 8, 8, 185, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 87, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 178, 0, 0, 255, 8, 8, 8, 254, 0, 0, 0, 71, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 164, 208, 208, 208, 255, 221, 221, 221, 255, 127, 127, 127, 254, 42, 42, 42, 245, 201, 201, 201, 255, 255, 255, 255, 255, 252, 252, 252, 255, 119, 119, 119, 254, 213, 213, 213, 255, 255, 255, 255, 255, 226, 226, 226, 255, 14, 14, 14, 193, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 155, 235, 235, 235, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 128, 128, 128, 255, 3, 3, 3, 169, 1, 1, 1, 81, 0, 0, 0, 69, 2, 2, 2, 137, 79, 79, 79, 248, 242, 242, 242, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 8, 8, 8, 185, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 74, 121, 0, 0, 255, 255, 0, 0, 255, 226, 0, 0, 255, 204, 0, 0, 255, 159, 0, 0, 255, 1, 0, 0, 189, 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, 26, 18, 18, 18, 213, 0, 0, 0, 156, 0, 0, 0, 63, 0, 0, 0, 66, 138, 138, 138, 253, 255, 255, 255, 255, 189, 189, 189, 255, 1, 1, 1, 148, 3, 3, 3, 160, 92, 92, 92, 252, 186, 186, 186, 255, 21, 21, 21, 210, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 155, 165, 165, 165, 255, 179, 179, 179, 255, 179, 179, 179, 255, 179, 179, 179, 255, 179, 179, 179, 255, 141, 141, 141, 255, 76, 76, 76, 254, 64, 64, 64, 253, 121, 121, 121, 255, 179, 179, 179, 255, 179, 179, 179, 255, 179, 179, 179, 255, 179, 179, 179, 255, 179, 179, 179, 255, 5, 5, 5, 186, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 128, 0, 0, 255, 84, 0, 0, 254, 0, 0, 0, 178, 0, 0, 0, 128, 1, 0, 0, 115, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 90, 90, 90, 254, 255, 255, 255, 255, 104, 104, 104, 254, 0, 0, 0, 36, 0, 0, 0, 0, 0, 0, 0, 40, 1, 1, 1, 142, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 6, 6, 6, 49, 11, 11, 11, 107, 11, 11, 11, 107, 11, 11, 11, 107, 11, 11, 11, 107, 11, 11, 11, 107, 11, 11, 11, 107, 11, 11, 11, 107, 11, 11, 11, 107, 11, 11, 11, 107, 11, 11, 11, 107, 11, 11, 11, 107, 11, 11, 11, 107, 11, 11, 11, 107, 11, 11, 11, 107, 5, 5, 5, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 9, 0, 0, 251, 1, 0, 0, 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 31, 31, 31, 221, 176, 176, 176, 255, 22, 22, 22, 205, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 81, 1, 0, 0, 85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 1, 1, 101, 3, 3, 3, 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 167, 0, 0, 0, 221, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 0, 0, 0, 225, 0, 0, 0, 174, 0, 0, 27, 70, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 0, 0, 0, 166, 1, 1, 1, 220, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 226, 0, 0, 0, 174, 0, 0, 0, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 0, 0, 0, 165, 0, 0, 0, 218, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 0, 0, 0, 226, 0, 0, 0, 175, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41, 0, 0, 0, 163, 1, 1, 1, 218, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 228, 0, 0, 0, 176, 0, 0, 0, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38, 0, 0, 0, 162, 0, 0, 0, 217, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 0, 0, 0, 228, 0, 0, 0, 177, 0, 0, 0, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 0, 0, 0, 160, 1, 1, 1, 216, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 229, 0, 0, 0, 178, 0, 0, 0, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 0, 0, 0, 158, 0, 0, 0, 215, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 0, 0, 0, 230, 0, 0, 0, 179, 0, 0, 0, 75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, 157, 1, 1, 1, 214, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 231, 0, 0, 0, 180, 0, 0, 0, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 104, 2, 2, 2, 248, 52, 52, 52, 253, 85, 85, 85, 253, 95, 95, 95, 253, 95, 95, 95, 253, 95, 95, 95, 253, 95, 95, 95, 253, 95, 95, 95, 253, 95, 95, 95, 253, 95, 95, 95, 253, 95, 95, 95, 253, 95, 95, 95, 253, 95, 95, 95, 253, 95, 95, 95, 253, 95, 95, 95, 253, 95, 95, 95, 253, 95, 95, 95, 253, 95, 95, 95, 253, 95, 95, 95, 253, 95, 95, 95, 253, 95, 95, 95, 253, 95, 95, 95, 253, 95, 95, 95, 253, 95, 95, 95, 253, 95, 95, 95, 253, 33, 31, 112, 254, 2, 0, 82, 255, 0, 0, 8, 255, 0, 0, 22, 136, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 101, 3, 3, 3, 247, 92, 92, 92, 253, 153, 153, 153, 253, 173, 173, 173, 253, 173, 173, 173, 253, 173, 173, 173, 253, 173, 173, 173, 253, 173, 173, 173, 253, 173, 173, 173, 253, 173, 173, 173, 253, 173, 173, 173, 253, 173, 173, 173, 253, 173, 173, 173, 253, 173, 173, 173, 253, 173, 173, 173, 253, 173, 173, 173, 253, 173, 173, 173, 253, 173, 173, 173, 253, 173, 173, 173, 253, 173, 173, 173, 253, 173, 173, 173, 253, 173, 173, 173, 253, 173, 173, 173, 253, 173, 173, 173, 253, 128, 127, 166, 253, 19, 15, 160, 255, 7, 4, 132, 255, 5, 4, 26, 252, 0, 0, 0, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 2, 2, 2, 246, 50, 50, 50, 253, 84, 84, 84, 253, 95, 95, 95, 253, 95, 95, 95, 253, 95, 95, 95, 253, 95, 95, 95, 253, 95, 95, 95, 253, 95, 95, 95, 253, 95, 95, 95, 253, 95, 95, 95, 253, 95, 95, 95, 253, 95, 95, 95, 253, 95, 95, 95, 253, 95, 95, 95, 253, 95, 95, 95, 253, 95, 95, 95, 253, 95, 95, 95, 253, 95, 95, 95, 253, 95, 95, 95, 253, 95, 95, 95, 253, 95, 95, 95, 253, 95, 95, 95, 253, 95, 95, 95, 253, 95, 95, 95, 253, 88, 88, 88, 253, 58, 58, 58, 253, 5, 5, 5, 252, 0, 0, 0, 130, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, 3, 3, 3, 246, 89, 89, 89, 253, 151, 151, 151, 253, 173, 173, 173, 253, 173, 173, 173, 253, 173, 173, 173, 253, 173, 173, 173, 253, 173, 173, 173, 253, 173, 173, 173, 253, 173, 173, 173, 253, 173, 173, 173, 253, 173, 173, 173, 253, 173, 173, 173, 253, 173, 173, 173, 253, 173, 173, 173, 253, 173, 173, 173, 253, 173, 173, 173, 253, 173, 173, 173, 253, 173, 173, 173, 253, 173, 173, 173, 253, 173, 173, 173, 253, 173, 173, 173, 253, 173, 173, 173, 253, 173, 173, 173, 253, 173, 173, 173, 253, 159, 159, 159, 253, 107, 107, 107, 253, 10, 10, 10, 253, 0, 0, 0, 134, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 90, 1, 1, 1, 244, 48, 48, 48, 253, 83, 83, 83, 253, 95, 95, 95, 253, 95, 95, 95, 253, 95, 95, 95, 253, 95, 95, 95, 253, 95, 95, 95, 253, 95, 95, 95, 253, 95, 95, 95, 253, 95, 95, 95, 253, 95, 95, 95, 253, 95, 95, 95, 253, 95, 95, 95, 253, 95, 95, 95, 253, 95, 95, 95, 253, 95, 95, 95, 253, 95, 95, 95, 253, 95, 95, 95, 253, 95, 95, 95, 253, 95, 95, 95, 253, 95, 95, 95, 253, 95, 95, 95, 253, 95, 95, 95, 253, 95, 95, 95, 253, 88, 88, 88, 253, 60, 60, 60, 253, 6, 6, 6, 253, 0, 0, 0, 139, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 2, 2, 2, 244, 85, 85, 85, 253, 149, 149, 149, 253, 173, 173, 173, 253, 173, 173, 173, 253, 173, 173, 173, 253, 173, 173, 173, 253, 173, 173, 173, 253, 173, 173, 173, 253, 173, 173, 173, 253, 173, 173, 173, 253, 173, 173, 173, 253, 173, 173, 173, 253, 173, 173, 173, 253, 173, 173, 173, 253, 173, 173, 173, 253, 173, 173, 173, 253, 173, 173, 173, 253, 173, 173, 173, 253, 173, 173, 173, 253, 173, 173, 173, 253, 173, 173, 173, 253, 173, 173, 173, 253, 173, 173, 173, 253, 173, 173, 173, 253, 161, 161, 161, 253, 110, 110, 110, 253, 11, 11, 11, 254, 0, 0, 0, 143, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 1, 1, 1, 242, 46, 46, 46, 253, 82, 82, 82, 253, 95, 95, 95, 253, 95, 95, 95, 253, 95, 95, 95, 253, 95, 95, 95, 253, 95, 95, 95, 253, 95, 95, 95, 253, 95, 95, 95, 253, 95, 95, 95, 253, 95, 95, 95, 253, 95, 95, 95, 253, 95, 95, 95, 253, 95, 95, 95, 253, 95, 95, 95, 253, 95, 95, 95, 253, 95, 95, 95, 253, 95, 95, 95, 253, 95, 95, 95, 253, 95, 95, 95, 253, 95, 95, 95, 253, 95, 95, 95, 253, 95, 95, 95, 253, 95, 95, 95, 253, 89, 89, 89, 253, 61, 61, 61, 253, 7, 7, 7, 253, 0, 0, 0, 148, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 1, 1, 1, 241, 81, 81, 81, 253, 148, 148, 148, 253, 173, 173, 173, 253, 173, 173, 173, 253, 173, 173, 173, 253, 173, 173, 173, 253, 173, 173, 173, 253, 173, 173, 173, 253, 173, 173, 173, 253, 173, 173, 173, 253, 173, 173, 173, 253, 173, 173, 173, 253, 173, 173, 173, 253, 173, 173, 173, 253, 173, 173, 173, 253, 173, 173, 173, 253, 173, 173, 173, 253, 173, 173, 173, 253, 173, 173, 173, 253, 173, 173, 173, 253, 173, 173, 173, 253, 173, 173, 173, 253, 173, 173, 173, 253, 173, 173, 173, 253, 162, 162, 162, 253, 112, 112, 112, 253, 14, 14, 14, 254, 0, 0, 0, 152, 0, 0, 0, 0, 0, 0, 0, 48, 2, 2, 2, 248, 89, 89, 89, 253, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 90, 89, 132, 253, 5, 0, 173, 255, 5, 0, 173, 255, 4, 0, 141, 255, 0, 0, 9, 255, 0, 0, 38, 86, 0, 0, 0, 45, 4, 4, 4, 247, 159, 159, 159, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 210, 210, 214, 252, 40, 36, 180, 254, 5, 0, 173, 255, 5, 0, 173, 255, 12, 7, 163, 255, 5, 4, 32, 253, 0, 0, 0, 70, 0, 0, 0, 42, 1, 1, 1, 245, 86, 86, 86, 253, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 99, 99, 99, 252, 7, 7, 7, 253, 0, 0, 0, 74, 0, 0, 0, 39, 2, 2, 2, 244, 152, 152, 152, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 182, 182, 182, 252, 14, 14, 14, 254, 0, 0, 0, 78, 0, 0, 0, 35, 1, 1, 1, 242, 82, 82, 82, 253, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 102, 102, 102, 252, 8, 8, 8, 253, 0, 0, 0, 83, 0, 0, 0, 33, 1, 1, 1, 241, 145, 145, 145, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 186, 186, 186, 252, 17, 17, 17, 254, 0, 0, 0, 87, 0, 0, 0, 30, 0, 0, 0, 239, 78, 78, 78, 253, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 104, 104, 104, 252, 10, 10, 10, 253, 0, 0, 0, 92, 0, 0, 0, 27, 1, 1, 1, 238, 138, 138, 138, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 190, 190, 190, 252, 21, 21, 21, 254, 0, 0, 0, 97, 0, 0, 0, 169, 53, 53, 53, 253, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 115, 115, 121, 252, 21, 17, 165, 254, 5, 0, 173, 255, 5, 0, 173, 255, 5, 0, 173, 255, 2, 0, 92, 255, 0, 0, 2, 193, 0, 0, 0, 166, 92, 92, 92, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 111, 109, 194, 253, 5, 0, 173, 255, 5, 0, 173, 255, 5, 0, 173, 255, 5, 0, 173, 255, 22, 20, 110, 254, 1, 1, 1, 197, 0, 0, 0, 161, 49, 49, 49, 253, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 67, 67, 67, 253, 0, 0, 0, 200, 0, 0, 0, 157, 84, 84, 84, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 126, 126, 126, 253, 1, 1, 1, 205, 0, 0, 0, 152, 44, 44, 44, 253, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 72, 72, 72, 253, 0, 0, 0, 209, 0, 0, 0, 147, 77, 77, 77, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 134, 134, 134, 253, 1, 1, 1, 214, 0, 0, 0, 142, 41, 41, 41, 253, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 121, 114, 125, 252, 159, 93, 142, 253, 167, 88, 145, 253, 132, 106, 132, 253, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 76, 76, 76, 253, 0, 0, 0, 219, 0, 0, 0, 137, 69, 69, 69, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 207, 201, 210, 252, 205, 140, 188, 253, 205, 125, 182, 253, 201, 173, 200, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 141, 141, 141, 253, 1, 1, 1, 225, 0, 0, 0, 223, 86, 86, 86, 253, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 58, 56, 147, 254, 5, 0, 173, 255, 5, 0, 173, 255, 5, 0, 173, 255, 5, 0, 173, 255, 4, 0, 141, 255, 0, 0, 4, 245, 1, 1, 1, 219, 152, 152, 152, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 181, 180, 208, 252, 11, 6, 174, 255, 5, 0, 173, 255, 5, 0, 173, 255, 5, 0, 173, 255, 5, 0, 173, 255, 40, 37, 163, 254, 1, 1, 1, 244, 0, 0, 0, 214, 82, 82, 82, 253, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 101, 101, 101, 252, 1, 1, 1, 247, 1, 1, 1, 210, 146, 146, 146, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 186, 186, 186, 252, 1, 1, 1, 249, 0, 0, 0, 205, 78, 78, 78, 253, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 115, 115, 115, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 105, 105, 105, 252, 1, 1, 1, 250, 1, 1, 1, 203, 138, 138, 138, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 207, 207, 207, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 194, 194, 194, 252, 1, 1, 1, 252, 0, 0, 0, 200, 74, 74, 74, 253, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 133, 105, 129, 253, 199, 72, 160, 255, 215, 67, 161, 255, 215, 67, 161, 255, 212, 68, 161, 255, 142, 100, 138, 253, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 110, 110, 110, 252, 1, 1, 1, 253, 1, 1, 1, 198, 130, 130, 130, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 204, 178, 201, 253, 204, 77, 165, 255, 215, 67, 161, 255, 215, 67, 161, 255, 212, 68, 161, 255, 198, 154, 194, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 201, 201, 201, 252, 2, 2, 2, 253, 1, 1, 1, 253, 103, 103, 103, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 97, 97, 129, 252, 7, 2, 172, 255, 5, 0, 173, 255, 5, 0, 173, 255, 5, 0, 173, 255, 5, 0, 173, 255, 5, 0, 164, 255, 0, 0, 1, 254, 1, 1, 1, 249, 183, 183, 183, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 214, 214, 215, 252, 53, 50, 182, 254, 5, 0, 173, 255, 5, 0, 173, 255, 5, 0, 173, 255, 5, 0, 173, 255, 5, 0, 173, 255, 32, 28, 177, 254, 1, 1, 1, 253, 1, 1, 1, 245, 99, 99, 99, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 118, 118, 118, 252, 1, 1, 1, 253, 1, 1, 1, 242, 175, 175, 175, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 214, 214, 214, 252, 3, 3, 3, 254, 0, 0, 0, 240, 94, 94, 94, 253, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 115, 115, 115, 252, 51, 51, 51, 253, 2, 2, 2, 255, 3, 3, 3, 255, 38, 38, 38, 253, 111, 111, 111, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 4, 4, 4, 253, 1, 1, 1, 237, 166, 166, 166, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 209, 209, 209, 252, 95, 95, 95, 253, 4, 4, 4, 255, 4, 4, 4, 255, 67, 67, 67, 253, 199, 199, 199, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 9, 9, 9, 254, 0, 0, 0, 235, 90, 90, 90, 253, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 151, 97, 138, 253, 213, 67, 161, 255, 214, 66, 160, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 208, 68, 161, 255, 132, 107, 131, 253, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 7, 7, 7, 253, 1, 1, 1, 233, 159, 159, 159, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 204, 153, 192, 253, 213, 67, 161, 255, 214, 66, 160, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 209, 69, 162, 255, 202, 175, 200, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 17, 17, 17, 254, 1, 1, 1, 253, 104, 104, 104, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 117, 117, 119, 252, 28, 24, 162, 254, 5, 0, 173, 255, 5, 0, 173, 255, 5, 0, 173, 255, 5, 0, 173, 255, 5, 0, 173, 255, 49, 46, 143, 253, 1, 1, 1, 253, 1, 1, 1, 249, 184, 184, 184, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 128, 126, 197, 253, 5, 0, 173, 255, 5, 0, 173, 255, 5, 0, 173, 255, 5, 0, 173, 255, 5, 0, 173, 255, 20, 15, 176, 255, 169, 168, 201, 253, 1, 1, 1, 253, 1, 1, 1, 245, 99, 99, 99, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 166, 78, 78, 253, 223, 28, 28, 254, 150, 91, 91, 253, 119, 119, 119, 252, 119, 119, 119, 252, 118, 118, 118, 252, 1, 1, 1, 253, 1, 1, 1, 242, 176, 176, 176, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 228, 144, 144, 253, 245, 50, 50, 254, 224, 163, 163, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 3, 3, 3, 254, 0, 0, 0, 241, 95, 95, 95, 253, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 112, 112, 112, 252, 28, 28, 28, 254, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 25, 25, 25, 254, 114, 114, 114, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 4, 4, 4, 253, 1, 1, 1, 238, 167, 167, 167, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 204, 204, 204, 252, 54, 54, 54, 254, 1, 1, 1, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 42, 42, 42, 254, 204, 204, 204, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 10, 10, 10, 254, 0, 0, 0, 235, 91, 91, 91, 253, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 167, 88, 147, 253, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 200, 71, 160, 255, 124, 112, 127, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 8, 8, 8, 253, 1, 1, 1, 234, 161, 161, 161, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 202, 125, 183, 253, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 204, 74, 164, 255, 204, 191, 207, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 18, 18, 18, 254, 1, 1, 1, 253, 104, 104, 104, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 67, 66, 143, 253, 5, 0, 173, 255, 5, 0, 173, 255, 5, 0, 173, 255, 5, 0, 173, 255, 5, 0, 173, 255, 51, 48, 150, 254, 113, 113, 113, 252, 1, 1, 1, 253, 1, 1, 1, 249, 184, 184, 184, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 192, 191, 210, 252, 17, 12, 175, 255, 5, 0, 173, 255, 5, 0, 173, 255, 5, 0, 173, 255, 5, 0, 173, 255, 18, 13, 175, 255, 172, 172, 206, 253, 209, 209, 209, 252, 1, 1, 1, 253, 1, 1, 1, 245, 99, 99, 99, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 175, 69, 69, 253, 254, 1, 1, 255, 255, 0, 0, 255, 182, 63, 63, 253, 119, 119, 119, 252, 119, 119, 119, 252, 118, 118, 118, 252, 1, 1, 1, 253, 1, 1, 1, 242, 176, 176, 176, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 231, 129, 129, 253, 255, 2, 2, 255, 255, 0, 0, 255, 234, 110, 110, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 3, 3, 3, 254, 0, 0, 0, 241, 95, 95, 95, 253, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 115, 115, 115, 252, 100, 100, 100, 252, 117, 117, 117, 252, 108, 108, 108, 252, 23, 23, 23, 254, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 51, 51, 51, 253, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 4, 4, 4, 253, 1, 1, 1, 238, 167, 167, 167, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 209, 209, 209, 252, 181, 181, 181, 252, 210, 210, 210, 252, 197, 197, 197, 252, 44, 44, 44, 254, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 88, 88, 88, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 10, 10, 10, 254, 0, 0, 0, 235, 91, 91, 91, 253, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 121, 116, 121, 252, 183, 80, 150, 254, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 214, 66, 160, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 190, 76, 156, 254, 120, 116, 123, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 8, 8, 8, 253, 1, 1, 1, 234, 161, 161, 161, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 212, 209, 213, 252, 206, 105, 174, 254, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 203, 87, 169, 254, 208, 204, 211, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 18, 18, 18, 254, 1, 1, 1, 253, 104, 104, 104, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 104, 103, 126, 252, 10, 5, 171, 255, 5, 0, 173, 255, 5, 0, 173, 255, 5, 0, 173, 255, 5, 0, 173, 255, 49, 46, 151, 254, 118, 118, 119, 252, 113, 113, 113, 252, 1, 1, 1, 253, 1, 1, 1, 249, 184, 184, 184, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 69, 66, 185, 254, 5, 0, 173, 255, 5, 0, 173, 255, 5, 0, 173, 255, 5, 0, 173, 255, 16, 12, 175, 255, 170, 169, 205, 253, 215, 215, 215, 252, 209, 209, 209, 252, 1, 1, 1, 253, 1, 1, 1, 245, 99, 99, 99, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 182, 64, 64, 253, 255, 0, 0, 255, 255, 0, 0, 255, 225, 26, 26, 254, 127, 112, 112, 252, 119, 119, 119, 252, 119, 119, 119, 252, 118, 118, 118, 252, 1, 1, 1, 253, 1, 1, 1, 242, 176, 176, 176, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 233, 119, 119, 253, 255, 1, 1, 255, 255, 0, 0, 255, 246, 45, 45, 254, 218, 200, 200, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 3, 3, 3, 254, 0, 0, 0, 241, 95, 95, 95, 253, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 93, 93, 93, 253, 14, 14, 14, 254, 3, 3, 3, 255, 17, 17, 17, 254, 18, 18, 18, 254, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 9, 9, 9, 255, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 4, 4, 4, 253, 1, 1, 1, 238, 167, 167, 167, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 171, 171, 171, 253, 27, 27, 27, 254, 6, 6, 6, 255, 30, 30, 30, 254, 34, 34, 34, 254, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 12, 12, 12, 255, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 10, 10, 10, 254, 0, 0, 0, 235, 91, 91, 91, 253, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 122, 114, 125, 252, 193, 75, 154, 254, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 214, 66, 160, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 175, 82, 152, 254, 119, 118, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 8, 8, 8, 253, 1, 1, 1, 234, 161, 161, 161, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 207, 200, 210, 252, 208, 92, 170, 254, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 214, 66, 160, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 198, 102, 174, 254, 214, 213, 214, 252, 215, 215, 215, 252, 215, 215, 215, 252, 18, 18, 18, 254, 1, 1, 1, 253, 104, 104, 104, 252, 119, 119, 119, 252, 119, 119, 119, 252, 140, 101, 101, 252, 129, 111, 111, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 35, 32, 157, 254, 5, 0, 173, 255, 5, 0, 173, 255, 5, 0, 173, 255, 5, 0, 173, 255, 46, 44, 152, 254, 118, 118, 119, 252, 119, 119, 119, 252, 113, 113, 113, 252, 1, 1, 1, 253, 1, 1, 1, 249, 184, 184, 184, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 145, 144, 201, 253, 5, 0, 173, 255, 5, 0, 173, 255, 5, 0, 173, 255, 5, 0, 173, 255, 15, 11, 175, 255, 167, 166, 205, 253, 215, 215, 215, 252, 215, 215, 215, 252, 209, 209, 209, 252, 1, 1, 1, 253, 1, 1, 1, 245, 99, 99, 99, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 188, 58, 58, 253, 255, 0, 0, 255, 255, 0, 0, 255, 220, 30, 30, 254, 125, 113, 113, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 118, 118, 118, 252, 1, 1, 1, 253, 1, 1, 1, 242, 176, 176, 176, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 234, 109, 109, 253, 255, 0, 0, 255, 255, 0, 0, 255, 245, 52, 52, 254, 217, 203, 203, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 3, 3, 3, 254, 0, 0, 0, 241, 95, 95, 95, 253, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 116, 116, 116, 252, 13, 13, 13, 254, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 12, 12, 12, 254, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 4, 4, 4, 253, 1, 1, 1, 238, 167, 167, 167, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 211, 211, 211, 252, 25, 25, 25, 254, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 19, 19, 19, 254, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 10, 10, 10, 254, 0, 0, 0, 235, 91, 91, 91, 253, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 127, 110, 128, 253, 195, 73, 158, 254, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 158, 89, 148, 254, 119, 119, 119, 252, 119, 119, 119, 252, 8, 8, 8, 253, 1, 1, 1, 234, 161, 161, 161, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 204, 188, 206, 253, 204, 84, 168, 254, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 214, 66, 160, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 193, 121, 182, 254, 215, 215, 215, 252, 215, 215, 215, 252, 18, 18, 18, 254, 1, 1, 1, 253, 104, 104, 104, 252, 119, 119, 119, 252, 211, 44, 44, 254, 252, 11, 11, 255, 249, 14, 14, 255, 151, 92, 92, 253, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 141, 141, 153, 253, 114, 112, 181, 255, 17, 13, 174, 255, 5, 0, 173, 255, 5, 0, 173, 255, 44, 42, 153, 254, 118, 118, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 113, 113, 113, 252, 1, 1, 1, 253, 1, 1, 1, 249, 184, 184, 184, 252, 222, 176, 176, 253, 245, 59, 59, 254, 245, 62, 62, 254, 222, 174, 174, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 204, 204, 210, 252, 69, 66, 180, 255, 5, 0, 173, 255, 5, 0, 173, 255, 5, 0, 173, 255, 14, 9, 175, 255, 164, 163, 204, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 209, 209, 209, 252, 1, 1, 1, 253, 1, 1, 1, 245, 99, 99, 99, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 194, 53, 53, 253, 255, 0, 0, 255, 255, 0, 0, 255, 215, 35, 35, 254, 123, 115, 115, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 118, 118, 118, 252, 1, 1, 1, 253, 1, 1, 1, 242, 176, 176, 176, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 237, 99, 99, 253, 255, 0, 0, 255, 255, 0, 0, 255, 244, 60, 60, 254, 217, 207, 207, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 3, 3, 3, 254, 0, 0, 0, 241, 95, 95, 95, 253, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 101, 101, 101, 252, 3, 3, 3, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 1, 1, 1, 255, 65, 65, 65, 253, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 4, 4, 4, 253, 1, 1, 1, 238, 167, 167, 167, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 187, 187, 187, 252, 6, 6, 6, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 2, 2, 2, 255, 114, 114, 114, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 10, 10, 10, 254, 0, 0, 0, 235, 91, 91, 91, 253, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 99, 114, 134, 253, 65, 98, 176, 255, 199, 70, 163, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 214, 66, 160, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 137, 102, 135, 253, 119, 119, 119, 252, 8, 8, 8, 253, 1, 1, 1, 234, 161, 161, 161, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 174, 188, 207, 253, 72, 106, 185, 255, 197, 70, 163, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 214, 66, 160, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 198, 161, 196, 253, 215, 215, 215, 252, 18, 18, 18, 254, 1, 1, 1, 253, 104, 104, 104, 252, 138, 103, 103, 252, 255, 9, 9, 255, 254, 10, 10, 255, 255, 9, 9, 255, 208, 47, 47, 254, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 127, 127, 132, 252, 184, 184, 187, 255, 188, 188, 188, 255, 129, 128, 182, 255, 5, 0, 173, 255, 43, 40, 154, 254, 117, 117, 120, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 113, 113, 113, 252, 1, 1, 1, 253, 1, 1, 1, 249, 184, 184, 184, 252, 247, 47, 47, 254, 255, 9, 9, 255, 255, 12, 12, 255, 248, 46, 46, 254, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 186, 186, 193, 254, 188, 188, 188, 255, 102, 100, 180, 255, 5, 0, 173, 255, 14, 9, 175, 255, 162, 161, 203, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 209, 209, 209, 252, 1, 1, 1, 253, 1, 1, 1, 245, 99, 99, 99, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 120, 118, 118, 252, 200, 47, 47, 254, 255, 0, 0, 255, 255, 0, 0, 255, 210, 39, 39, 254, 122, 116, 116, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 118, 118, 118, 252, 1, 1, 1, 253, 1, 1, 1, 242, 176, 176, 176, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 214, 214, 252, 238, 89, 89, 254, 255, 0, 0, 255, 255, 0, 0, 255, 242, 68, 68, 254, 216, 210, 210, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 3, 3, 3, 254, 0, 0, 0, 241, 95, 95, 95, 253, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 117, 117, 117, 252, 20, 20, 20, 254, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 1, 1, 1, 255, 50, 50, 50, 253, 118, 118, 118, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 4, 4, 4, 253, 1, 1, 1, 238, 167, 167, 167, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 212, 212, 212, 252, 39, 39, 39, 254, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 2, 2, 2, 255, 87, 87, 87, 253, 214, 214, 214, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 10, 10, 10, 254, 0, 0, 0, 235, 91, 91, 91, 253, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 89, 112, 143, 253, 41, 101, 183, 255, 39, 101, 185, 255, 81, 92, 178, 255, 214, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 214, 66, 160, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 172, 84, 151, 254, 119, 119, 119, 252, 8, 8, 8, 253, 1, 1, 1, 234, 161, 161, 161, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 152, 174, 204, 253, 44, 104, 186, 255, 39, 101, 185, 255, 79, 93, 179, 255, 214, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 214, 66, 160, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 196, 107, 176, 254, 215, 215, 215, 252, 18, 18, 18, 254, 1, 1, 1, 253, 104, 104, 104, 252, 126, 113, 113, 252, 247, 15, 15, 255, 255, 9, 9, 255, 255, 9, 9, 255, 187, 63, 63, 253, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 120, 120, 120, 252, 169, 169, 174, 254, 188, 188, 188, 255, 188, 188, 188, 255, 187, 187, 188, 255, 59, 57, 157, 254, 117, 117, 120, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 113, 113, 113, 252, 1, 1, 1, 253, 1, 1, 1, 249, 184, 184, 184, 252, 249, 36, 36, 254, 255, 9, 9, 255, 255, 9, 9, 255, 250, 34, 34, 254, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 196, 196, 202, 253, 188, 188, 188, 255, 188, 188, 188, 255, 185, 185, 188, 255, 31, 27, 175, 255, 160, 159, 203, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 209, 209, 209, 252, 1, 1, 1, 253, 1, 1, 1, 245, 99, 99, 99, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 121, 117, 117, 252, 206, 42, 42, 254, 255, 0, 0, 255, 255, 0, 0, 255, 204, 44, 44, 254, 121, 117, 117, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 118, 118, 118, 252, 1, 1, 1, 253, 1, 1, 1, 242, 176, 176, 176, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 212, 212, 252, 240, 80, 80, 254, 255, 0, 0, 255, 255, 0, 0, 255, 240, 76, 76, 254, 216, 212, 212, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 3, 3, 3, 254, 0, 0, 0, 241, 95, 95, 95, 253, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 61, 61, 61, 253, 8, 8, 8, 254, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 1, 1, 1, 255, 61, 61, 61, 253, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 4, 4, 4, 253, 1, 1, 1, 238, 167, 167, 167, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 115, 115, 115, 253, 15, 15, 15, 254, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 2, 2, 2, 255, 107, 107, 107, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 10, 10, 10, 254, 0, 0, 0, 235, 91, 91, 91, 253, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 118, 119, 119, 252, 77, 109, 153, 253, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 116, 85, 173, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 166, 88, 146, 253, 119, 119, 119, 252, 8, 8, 8, 253, 1, 1, 1, 234, 161, 161, 161, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 214, 214, 215, 252, 125, 157, 199, 253, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 112, 86, 174, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 202, 122, 181, 253, 215, 215, 215, 252, 18, 18, 18, 254, 1, 1, 1, 253, 104, 104, 104, 252, 119, 119, 119, 252, 148, 95, 95, 253, 206, 48, 48, 254, 185, 64, 64, 253, 123, 116, 116, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 146, 145, 151, 253, 188, 188, 188, 255, 188, 188, 188, 255, 188, 188, 188, 255, 165, 165, 173, 254, 120, 120, 123, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 113, 113, 113, 252, 1, 1, 1, 253, 1, 1, 1, 249, 184, 184, 184, 252, 227, 151, 151, 253, 252, 22, 22, 255, 252, 22, 22, 255, 227, 149, 149, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 207, 207, 211, 252, 184, 184, 188, 255, 188, 188, 188, 255, 188, 188, 188, 255, 186, 186, 188, 255, 184, 183, 203, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 209, 209, 209, 252, 1, 1, 1, 253, 1, 1, 1, 245, 99, 99, 99, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 122, 116, 116, 252, 211, 38, 38, 254, 255, 0, 0, 255, 255, 0, 0, 255, 199, 49, 49, 254, 120, 118, 118, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 118, 118, 118, 252, 1, 1, 1, 253, 1, 1, 1, 242, 176, 176, 176, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 216, 210, 210, 252, 241, 71, 71, 254, 255, 0, 0, 255, 255, 0, 0, 255, 238, 85, 85, 254, 215, 213, 213, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 3, 3, 3, 254, 0, 0, 0, 241, 95, 95, 95, 253, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 68, 68, 68, 253, 81, 81, 81, 253, 94, 94, 94, 253, 6, 6, 6, 254, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 71, 71, 71, 253, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 4, 4, 4, 253, 1, 1, 1, 238, 167, 167, 167, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 125, 125, 125, 253, 143, 143, 143, 253, 173, 173, 173, 253, 14, 14, 14, 254, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 1, 1, 1, 255, 126, 126, 126, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 10, 10, 10, 254, 0, 0, 0, 235, 91, 91, 91, 253, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 116, 118, 121, 252, 65, 106, 163, 254, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 148, 79, 169, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 199, 71, 160, 255, 124, 112, 127, 252, 119, 119, 119, 252, 8, 8, 8, 253, 1, 1, 1, 234, 161, 161, 161, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 209, 211, 214, 252, 99, 140, 195, 254, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 145, 80, 170, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 204, 75, 164, 255, 204, 192, 207, 252, 215, 215, 215, 252, 18, 18, 18, 254, 1, 1, 1, 253, 104, 104, 104, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 106, 106, 106, 253, 79, 79, 79, 254, 60, 60, 60, 255, 59, 59, 59, 255, 115, 115, 116, 255, 186, 186, 187, 255, 188, 188, 188, 255, 166, 166, 174, 254, 120, 120, 123, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 113, 113, 113, 252, 1, 1, 1, 253, 1, 1, 1, 249, 184, 184, 184, 252, 215, 215, 215, 252, 215, 214, 214, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 186, 186, 186, 252, 130, 130, 130, 253, 121, 121, 121, 254, 156, 156, 159, 254, 188, 188, 188, 255, 188, 188, 188, 255, 187, 187, 188, 255, 192, 192, 202, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 209, 209, 209, 252, 1, 1, 1, 253, 1, 1, 1, 245, 99, 99, 99, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 124, 115, 115, 252, 216, 33, 33, 254, 255, 0, 0, 255, 255, 0, 0, 255, 193, 54, 54, 253, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 118, 118, 118, 252, 1, 1, 1, 253, 1, 1, 1, 242, 176, 176, 176, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 216, 208, 208, 252, 243, 63, 63, 254, 255, 0, 0, 255, 255, 0, 0, 255, 237, 95, 95, 253, 215, 214, 214, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 3, 3, 3, 254, 0, 0, 0, 241, 95, 95, 95, 253, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 60, 60, 60, 253, 88, 88, 88, 253, 119, 119, 119, 252, 119, 119, 119, 252, 87, 87, 87, 253, 2, 2, 2, 254, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 1, 1, 1, 255, 81, 81, 81, 253, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 4, 4, 4, 253, 1, 1, 1, 238, 167, 167, 167, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 112, 112, 112, 253, 157, 157, 157, 253, 215, 215, 215, 252, 215, 215, 215, 252, 159, 159, 159, 253, 6, 6, 6, 254, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 2, 2, 2, 255, 143, 143, 143, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 10, 10, 10, 254, 0, 0, 0, 235, 91, 91, 91, 253, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 111, 117, 125, 252, 55, 104, 171, 254, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 40, 101, 185, 255, 171, 75, 166, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 198, 72, 157, 254, 125, 112, 128, 252, 119, 119, 119, 252, 119, 119, 119, 252, 8, 8, 8, 253, 1, 1, 1, 234, 161, 161, 161, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 199, 205, 212, 252, 76, 125, 191, 254, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 100, 184, 255, 169, 75, 167, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 207, 79, 166, 254, 204, 190, 207, 252, 215, 215, 215, 252, 215, 215, 215, 252, 18, 18, 18, 254, 1, 1, 1, 253, 104, 104, 104, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 117, 93, 93, 253, 127, 40, 40, 255, 93, 49, 49, 255, 59, 59, 59, 255, 59, 59, 59, 255, 59, 59, 59, 255, 116, 115, 121, 255, 167, 167, 175, 254, 120, 120, 124, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 113, 113, 113, 252, 1, 1, 1, 253, 1, 1, 1, 249, 184, 184, 184, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 208, 208, 208, 252, 105, 105, 105, 254, 59, 59, 59, 255, 59, 59, 59, 255, 59, 59, 59, 255, 61, 61, 61, 255, 140, 140, 144, 255, 187, 187, 188, 255, 191, 191, 202, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 209, 209, 209, 252, 1, 1, 1, 253, 1, 1, 1, 245, 99, 99, 99, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 126, 113, 113, 252, 221, 29, 29, 254, 255, 0, 0, 255, 255, 0, 0, 255, 186, 60, 60, 253, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 118, 118, 118, 252, 1, 1, 1, 253, 1, 1, 1, 242, 176, 176, 176, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 217, 205, 205, 252, 244, 55, 55, 254, 255, 0, 0, 255, 255, 0, 0, 255, 235, 105, 105, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 3, 3, 3, 254, 0, 0, 0, 241, 95, 95, 95, 253, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 117, 117, 117, 252, 55, 55, 55, 253, 95, 95, 95, 253, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 79, 79, 79, 253, 1, 1, 1, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 63, 63, 63, 253, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 4, 4, 4, 253, 1, 1, 1, 238, 167, 167, 167, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 212, 212, 212, 252, 101, 101, 101, 254, 170, 170, 170, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 146, 146, 146, 253, 2, 2, 2, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 0, 0, 0, 255, 111, 111, 111, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 10, 10, 10, 254, 0, 0, 0, 235, 91, 91, 91, 253, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 104, 115, 130, 253, 48, 103, 177, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 50, 98, 183, 255, 189, 71, 164, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 190, 77, 153, 254, 124, 114, 124, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 8, 8, 8, 253, 1, 1, 1, 234, 161, 161, 161, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 184, 195, 209, 252, 60, 115, 189, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 48, 99, 183, 255, 187, 71, 164, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 209, 94, 170, 254, 209, 197, 209, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 18, 18, 18, 254, 1, 1, 1, 253, 104, 104, 104, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 151, 89, 89, 253, 246, 4, 4, 255, 255, 0, 0, 255, 254, 0, 0, 255, 173, 25, 25, 255, 60, 59, 59, 255, 59, 59, 59, 255, 70, 70, 70, 255, 120, 120, 124, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 113, 113, 113, 252, 1, 1, 1, 253, 1, 1, 1, 249, 184, 184, 184, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 216, 210, 210, 252, 210, 68, 68, 254, 240, 4, 4, 255, 217, 11, 11, 255, 115, 42, 42, 255, 59, 59, 59, 255, 59, 59, 59, 255, 67, 67, 68, 255, 192, 192, 200, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 209, 209, 209, 252, 1, 1, 1, 253, 1, 1, 1, 245, 99, 99, 99, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 128, 111, 111, 252, 226, 25, 25, 254, 255, 0, 0, 255, 255, 0, 0, 255, 180, 66, 66, 253, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 118, 118, 118, 252, 1, 1, 1, 253, 1, 1, 1, 242, 176, 176, 176, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 218, 202, 202, 252, 246, 48, 48, 254, 255, 0, 0, 255, 255, 0, 0, 255, 233, 115, 115, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 3, 3, 3, 254, 0, 0, 0, 241, 95, 95, 95, 253, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 115, 115, 115, 252, 51, 51, 51, 253, 102, 102, 102, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 117, 117, 117, 252, 33, 33, 33, 253, 1, 1, 1, 255, 0, 0, 0, 255, 0, 0, 0, 255, 6, 6, 6, 254, 102, 102, 102, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 4, 4, 4, 253, 1, 1, 1, 238, 167, 167, 167, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 209, 209, 209, 252, 93, 93, 93, 253, 182, 182, 182, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 212, 212, 212, 252, 64, 64, 64, 253, 2, 2, 2, 255, 0, 0, 0, 255, 0, 0, 0, 255, 10, 10, 10, 254, 181, 181, 181, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 10, 10, 10, 254, 0, 0, 0, 235, 91, 91, 91, 253, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 95, 113, 139, 253, 43, 102, 182, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 66, 95, 181, 255, 206, 69, 162, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 179, 83, 149, 254, 119, 117, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 8, 8, 8, 253, 1, 1, 1, 234, 161, 161, 161, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 164, 182, 206, 253, 48, 107, 186, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 64, 96, 181, 255, 204, 69, 162, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 206, 108, 176, 254, 213, 210, 213, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 18, 18, 18, 254, 1, 1, 1, 253, 104, 104, 104, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 235, 17, 17, 254, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 151, 31, 31, 255, 59, 59, 59, 255, 65, 65, 65, 255, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 113, 113, 113, 252, 1, 1, 1, 253, 1, 1, 1, 249, 184, 184, 184, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 235, 103, 103, 254, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 253, 1, 1, 255, 117, 41, 41, 255, 59, 59, 59, 255, 59, 59, 59, 255, 210, 210, 210, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 209, 209, 209, 252, 1, 1, 1, 253, 1, 1, 1, 245, 99, 99, 99, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 131, 108, 108, 252, 230, 21, 21, 254, 255, 0, 0, 255, 254, 1, 1, 255, 173, 71, 71, 253, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 118, 118, 118, 252, 1, 1, 1, 253, 1, 1, 1, 242, 176, 176, 176, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 218, 197, 197, 252, 247, 41, 41, 254, 255, 0, 0, 255, 255, 1, 1, 255, 232, 125, 125, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 3, 3, 3, 254, 0, 0, 0, 241, 95, 95, 95, 253, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 112, 112, 112, 252, 56, 44, 44, 253, 125, 93, 93, 253, 137, 105, 105, 253, 137, 105, 105, 253, 137, 105, 105, 253, 137, 105, 105, 253, 137, 105, 105, 253, 131, 102, 102, 253, 51, 50, 50, 253, 102, 102, 102, 252, 72, 72, 72, 253, 14, 14, 14, 254, 26, 26, 26, 254, 93, 93, 93, 253, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 4, 4, 4, 253, 1, 1, 1, 238, 167, 167, 167, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 203, 203, 203, 252, 89, 77, 77, 253, 190, 159, 159, 253, 214, 182, 182, 253, 214, 182, 182, 253, 214, 182, 182, 253, 214, 182, 182, 253, 214, 182, 182, 253, 207, 177, 177, 253, 92, 92, 92, 253, 183, 183, 183, 252, 133, 133, 133, 253, 27, 27, 27, 254, 46, 46, 46, 254, 167, 167, 167, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 10, 10, 10, 254, 0, 0, 0, 235, 91, 91, 91, 253, 119, 119, 119, 252, 119, 119, 119, 252, 83, 110, 148, 253, 40, 101, 184, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 82, 91, 178, 255, 213, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 161, 90, 144, 253, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 8, 8, 8, 253, 1, 1, 1, 234, 161, 161, 161, 253, 215, 215, 215, 252, 215, 215, 215, 252, 139, 166, 202, 253, 41, 102, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 80, 92, 178, 255, 213, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 215, 67, 161, 255, 201, 129, 184, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 18, 18, 18, 254, 1, 1, 1, 253, 104, 104, 104, 252, 119, 119, 119, 252, 144, 98, 98, 253, 197, 56, 56, 253, 180, 69, 69, 253, 122, 117, 117, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 141, 99, 99, 252, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 245, 3, 3, 255, 71, 55, 55, 255, 72, 72, 72, 254, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 113, 113, 113, 252, 1, 1, 1, 253, 1, 1, 1, 249, 184, 184, 184, 252, 215, 215, 215, 252, 222, 176, 176, 252, 222, 177, 177, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 213, 213, 252, 251, 16, 16, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 239, 5, 5, 255, 67, 57, 57, 255, 64, 64, 64, 255, 213, 213, 213, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 209, 209, 209, 252, 1, 1, 1, 253, 1, 1, 1, 245, 99, 99, 99, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 134, 106, 106, 252, 234, 18, 18, 254, 255, 0, 0, 255, 253, 2, 2, 255, 168, 76, 76, 253, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 118, 118, 118, 252, 1, 1, 1, 253, 1, 1, 1, 242, 176, 176, 176, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 219, 193, 193, 252, 249, 35, 35, 254, 255, 0, 0, 255, 255, 3, 3, 255, 230, 135, 135, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 3, 3, 3, 254, 0, 0, 0, 241, 95, 95, 95, 253, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 107, 107, 107, 252, 70, 34, 34, 254, 198, 50, 50, 255, 211, 53, 53, 255, 211, 53, 53, 255, 211, 53, 53, 255, 211, 53, 53, 255, 211, 53, 53, 255, 197, 50, 50, 255, 69, 34, 34, 254, 108, 107, 107, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 4, 4, 4, 253, 1, 1, 1, 238, 167, 167, 167, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 195, 195, 195, 252, 88, 53, 53, 254, 197, 49, 49, 255, 211, 53, 53, 255, 211, 53, 53, 255, 211, 53, 53, 255, 211, 53, 53, 255, 211, 53, 53, 255, 198, 50, 50, 255, 88, 52, 52, 254, 193, 192, 192, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 10, 10, 10, 254, 0, 0, 0, 235, 91, 91, 91, 253, 119, 119, 119, 252, 73, 108, 156, 253, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 96, 89, 176, 255, 214, 67, 161, 255, 205, 69, 161, 255, 143, 101, 134, 253, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 8, 8, 8, 253, 1, 1, 1, 234, 161, 161, 161, 253, 215, 215, 215, 252, 118, 152, 198, 253, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 93, 90, 176, 255, 213, 67, 161, 255, 207, 70, 162, 255, 204, 160, 195, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 18, 18, 18, 254, 1, 1, 1, 253, 104, 104, 104, 252, 125, 114, 114, 252, 245, 17, 17, 255, 252, 10, 10, 255, 255, 9, 9, 255, 185, 65, 65, 253, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 155, 78, 78, 253, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 129, 38, 38, 255, 86, 86, 86, 253, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 113, 113, 113, 252, 1, 1, 1, 253, 1, 1, 1, 249, 184, 184, 184, 252, 235, 111, 111, 253, 255, 9, 9, 255, 254, 13, 13, 255, 235, 110, 110, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 218, 188, 188, 252, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 131, 37, 37, 255, 94, 94, 94, 254, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 209, 209, 209, 252, 1, 1, 1, 253, 1, 1, 1, 245, 99, 99, 99, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 137, 103, 103, 252, 238, 15, 15, 255, 255, 0, 0, 255, 252, 3, 3, 255, 162, 81, 81, 253, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 118, 118, 118, 252, 1, 1, 1, 253, 1, 1, 1, 242, 176, 176, 176, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 220, 188, 188, 252, 249, 29, 29, 255, 255, 0, 0, 255, 254, 5, 5, 255, 228, 143, 143, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 3, 3, 3, 254, 0, 0, 0, 241, 95, 95, 95, 253, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 102, 101, 101, 252, 77, 32, 32, 254, 204, 51, 51, 255, 211, 53, 53, 255, 211, 53, 53, 255, 211, 53, 53, 255, 211, 53, 53, 255, 211, 53, 53, 255, 189, 47, 47, 255, 66, 37, 37, 254, 112, 112, 112, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 4, 4, 4, 253, 1, 1, 1, 238, 167, 167, 167, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 186, 185, 185, 252, 90, 47, 47, 254, 203, 51, 51, 255, 211, 53, 53, 255, 211, 53, 53, 255, 211, 53, 53, 255, 211, 53, 53, 255, 211, 53, 53, 255, 191, 48, 48, 255, 88, 58, 58, 254, 201, 201, 201, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 10, 10, 10, 254, 0, 0, 0, 235, 91, 91, 91, 253, 101, 115, 133, 252, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 116, 89, 167, 254, 128, 109, 129, 253, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 8, 8, 8, 253, 1, 1, 1, 234, 161, 161, 161, 253, 180, 192, 209, 252, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 124, 99, 178, 255, 203, 183, 204, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 18, 18, 18, 254, 1, 1, 1, 253, 104, 104, 104, 252, 139, 102, 102, 252, 255, 9, 9, 255, 254, 9, 9, 255, 255, 9, 9, 255, 208, 47, 47, 254, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 174, 65, 65, 253, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 166, 27, 27, 255, 110, 110, 110, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 113, 113, 113, 252, 1, 1, 1, 253, 1, 1, 1, 249, 184, 184, 184, 252, 250, 30, 30, 255, 255, 9, 9, 255, 255, 10, 10, 255, 251, 27, 27, 255, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 211, 150, 150, 253, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 183, 22, 22, 255, 143, 143, 143, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 209, 209, 209, 252, 1, 1, 1, 253, 1, 1, 1, 245, 99, 99, 99, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 141, 100, 100, 252, 241, 12, 12, 255, 255, 0, 0, 255, 250, 4, 4, 255, 157, 86, 86, 253, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 118, 118, 118, 252, 1, 1, 1, 253, 1, 1, 1, 242, 176, 176, 176, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 221, 183, 183, 252, 251, 24, 24, 255, 255, 0, 0, 255, 254, 7, 7, 255, 227, 152, 152, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 3, 3, 3, 254, 0, 0, 0, 241, 95, 95, 95, 253, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 96, 95, 95, 253, 88, 30, 30, 254, 208, 52, 52, 255, 211, 53, 53, 255, 211, 53, 53, 255, 211, 53, 53, 255, 211, 53, 53, 255, 211, 53, 53, 255, 179, 45, 45, 255, 64, 42, 42, 254, 115, 115, 115, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 4, 4, 4, 253, 1, 1, 1, 238, 167, 167, 167, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 175, 173, 173, 253, 96, 41, 41, 254, 207, 52, 52, 255, 211, 53, 53, 255, 211, 53, 53, 255, 211, 53, 53, 255, 211, 53, 53, 255, 211, 53, 53, 255, 181, 47, 47, 255, 91, 68, 68, 254, 207, 207, 207, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 10, 10, 10, 254, 0, 0, 0, 235, 91, 91, 91, 253, 91, 112, 141, 253, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 58, 105, 168, 254, 113, 118, 124, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 8, 8, 8, 253, 1, 1, 1, 234, 161, 161, 161, 253, 158, 178, 205, 253, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 79, 127, 191, 254, 200, 206, 212, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 18, 18, 18, 254, 1, 1, 1, 253, 104, 104, 104, 252, 120, 118, 118, 252, 216, 40, 40, 254, 255, 9, 9, 255, 251, 12, 12, 255, 155, 89, 89, 253, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 185, 56, 56, 253, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 179, 55, 55, 254, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 113, 113, 113, 252, 1, 1, 1, 253, 1, 1, 1, 249, 184, 184, 184, 252, 243, 68, 68, 254, 255, 9, 9, 255, 255, 9, 9, 255, 244, 66, 66, 254, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 212, 124, 124, 253, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 209, 32, 32, 255, 207, 207, 207, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 209, 209, 209, 252, 1, 1, 1, 253, 1, 1, 1, 245, 99, 99, 99, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 144, 96, 96, 253, 244, 10, 10, 255, 255, 0, 0, 255, 248, 6, 6, 255, 152, 90, 90, 253, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 118, 118, 118, 252, 1, 1, 1, 253, 1, 1, 1, 242, 176, 176, 176, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 222, 176, 176, 253, 251, 19, 19, 255, 255, 0, 0, 255, 253, 10, 10, 255, 225, 159, 159, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 3, 3, 3, 254, 0, 0, 0, 241, 95, 95, 95, 253, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 89, 88, 88, 253, 102, 30, 30, 254, 210, 53, 53, 255, 211, 53, 53, 255, 211, 53, 53, 255, 211, 53, 53, 255, 211, 53, 53, 255, 211, 53, 53, 255, 167, 43, 43, 255, 64, 49, 49, 254, 117, 117, 117, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 4, 4, 4, 253, 1, 1, 1, 238, 167, 167, 167, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 162, 161, 161, 253, 106, 36, 36, 254, 210, 53, 53, 255, 211, 53, 53, 255, 211, 53, 53, 255, 211, 53, 53, 255, 211, 53, 53, 255, 211, 53, 53, 255, 170, 44, 44, 255, 98, 82, 82, 254, 211, 211, 211, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 10, 10, 10, 254, 0, 0, 0, 235, 91, 91, 91, 253, 111, 117, 125, 252, 43, 102, 182, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 68, 107, 159, 254, 117, 118, 121, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 8, 8, 8, 253, 1, 1, 1, 234, 161, 161, 161, 253, 201, 206, 213, 252, 48, 107, 186, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 102, 141, 195, 254, 210, 212, 214, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 18, 18, 18, 254, 1, 1, 1, 253, 104, 104, 104, 252, 119, 119, 119, 252, 121, 118, 118, 252, 146, 96, 96, 252, 132, 108, 108, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 191, 47, 47, 254, 255, 0, 0, 255, 255, 0, 0, 255, 230, 13, 13, 254, 200, 46, 46, 254, 201, 48, 48, 254, 178, 66, 66, 253, 126, 113, 113, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 113, 113, 113, 252, 1, 1, 1, 253, 1, 1, 1, 249, 184, 184, 184, 252, 218, 201, 201, 252, 235, 109, 109, 253, 235, 109, 109, 253, 218, 200, 200, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 218, 115, 115, 253, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 249, 22, 22, 254, 226, 149, 149, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 209, 209, 209, 252, 1, 1, 1, 253, 1, 1, 1, 245, 99, 99, 99, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 148, 93, 93, 253, 246, 8, 8, 255, 255, 0, 0, 255, 246, 8, 8, 255, 147, 93, 93, 253, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 118, 118, 118, 252, 1, 1, 1, 253, 1, 1, 1, 242, 176, 176, 176, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 223, 170, 170, 253, 252, 15, 15, 255, 255, 0, 0, 255, 252, 13, 13, 255, 223, 167, 167, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 3, 3, 3, 254, 0, 0, 0, 241, 95, 95, 95, 253, 119, 119, 119, 252, 119, 119, 119, 252, 99, 97, 97, 252, 106, 30, 30, 254, 211, 53, 53, 255, 211, 53, 53, 255, 211, 53, 53, 255, 211, 53, 53, 255, 211, 53, 53, 255, 211, 53, 53, 255, 154, 39, 39, 255, 66, 58, 58, 253, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 4, 4, 4, 253, 1, 1, 1, 238, 167, 167, 167, 253, 215, 215, 215, 252, 215, 215, 215, 252, 180, 179, 179, 252, 106, 33, 33, 254, 211, 53, 53, 255, 211, 53, 53, 255, 211, 53, 53, 255, 211, 53, 53, 255, 211, 53, 53, 255, 211, 53, 53, 255, 158, 41, 41, 255, 108, 99, 99, 253, 214, 214, 214, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 10, 10, 10, 254, 0, 0, 0, 235, 91, 91, 91, 253, 119, 119, 119, 252, 91, 112, 141, 253, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 184, 255, 80, 110, 150, 253, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 8, 8, 8, 253, 1, 1, 1, 234, 161, 161, 161, 253, 215, 215, 215, 252, 157, 177, 205, 253, 40, 102, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 40, 102, 185, 255, 128, 159, 200, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 18, 18, 18, 254, 1, 1, 1, 253, 104, 104, 104, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 197, 38, 38, 254, 255, 0, 0, 255, 174, 56, 56, 253, 119, 118, 118, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 113, 113, 113, 252, 1, 1, 1, 253, 1, 1, 1, 249, 184, 184, 184, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 227, 109, 109, 253, 255, 0, 0, 255, 240, 17, 17, 255, 214, 133, 133, 253, 216, 206, 206, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 209, 209, 209, 252, 1, 1, 1, 253, 1, 1, 1, 245, 99, 99, 99, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 153, 89, 89, 253, 248, 6, 6, 255, 255, 0, 0, 255, 243, 11, 11, 255, 144, 97, 97, 253, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 118, 118, 118, 252, 1, 1, 1, 253, 1, 1, 1, 242, 176, 176, 176, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 224, 163, 163, 253, 253, 12, 12, 255, 255, 0, 0, 255, 252, 17, 17, 255, 222, 173, 173, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 3, 3, 3, 254, 0, 0, 0, 241, 95, 95, 95, 253, 119, 119, 119, 252, 119, 119, 119, 252, 64, 52, 52, 253, 209, 53, 53, 255, 211, 53, 53, 255, 211, 53, 53, 255, 211, 53, 53, 255, 211, 53, 53, 255, 211, 53, 53, 255, 141, 36, 36, 255, 70, 67, 67, 253, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 4, 4, 4, 253, 1, 1, 1, 238, 167, 167, 167, 253, 215, 215, 215, 252, 215, 215, 215, 252, 104, 95, 95, 253, 208, 52, 52, 255, 211, 53, 53, 255, 211, 53, 53, 255, 211, 53, 53, 255, 211, 53, 53, 255, 211, 53, 53, 255, 144, 38, 38, 255, 121, 117, 117, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 10, 10, 10, 254, 0, 0, 0, 235, 91, 91, 91, 253, 119, 119, 119, 252, 119, 119, 119, 252, 79, 109, 151, 253, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 42, 102, 182, 255, 93, 113, 140, 253, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 8, 8, 8, 253, 1, 1, 1, 234, 161, 161, 161, 253, 215, 215, 215, 252, 215, 215, 215, 252, 130, 160, 200, 253, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 45, 105, 186, 255, 155, 176, 204, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 18, 18, 18, 254, 1, 1, 1, 253, 104, 104, 104, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 136, 105, 105, 252, 134, 107, 107, 252, 119, 119, 119, 252, 204, 30, 30, 254, 178, 53, 53, 254, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 113, 113, 113, 252, 1, 1, 1, 253, 1, 1, 1, 249, 184, 184, 184, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 230, 97, 97, 254, 240, 18, 18, 255, 210, 180, 180, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 209, 209, 209, 252, 1, 1, 1, 253, 1, 1, 1, 245, 99, 99, 99, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 158, 84, 84, 253, 250, 4, 4, 255, 255, 0, 0, 255, 240, 13, 13, 255, 140, 101, 101, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 118, 118, 118, 252, 1, 1, 1, 253, 1, 1, 1, 242, 176, 176, 176, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 226, 156, 156, 253, 253, 8, 8, 255, 255, 0, 0, 255, 251, 22, 22, 255, 221, 180, 180, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 3, 3, 3, 254, 0, 0, 0, 241, 95, 95, 95, 253, 119, 119, 119, 252, 119, 119, 119, 252, 72, 47, 47, 253, 211, 53, 53, 255, 211, 53, 53, 255, 211, 53, 53, 255, 211, 53, 53, 255, 211, 53, 53, 255, 127, 33, 33, 255, 78, 76, 76, 253, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 4, 4, 4, 253, 1, 1, 1, 238, 167, 167, 167, 253, 215, 215, 215, 252, 215, 215, 215, 252, 105, 83, 83, 253, 211, 53, 53, 255, 211, 53, 53, 255, 211, 53, 53, 255, 211, 53, 53, 255, 211, 53, 53, 255, 131, 35, 35, 255, 135, 134, 134, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 10, 10, 10, 254, 0, 0, 0, 235, 91, 91, 91, 253, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 66, 106, 161, 254, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 47, 102, 178, 255, 102, 114, 132, 253, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 8, 8, 8, 253, 1, 1, 1, 234, 161, 161, 161, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 102, 142, 195, 254, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 55, 112, 188, 255, 176, 190, 208, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 18, 18, 18, 254, 1, 1, 1, 253, 104, 104, 104, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 188, 63, 63, 253, 252, 11, 11, 255, 254, 10, 10, 255, 171, 76, 76, 253, 175, 45, 45, 253, 119, 117, 117, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 113, 113, 113, 252, 1, 1, 1, 253, 1, 1, 1, 249, 184, 184, 184, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 219, 194, 194, 252, 243, 71, 71, 254, 246, 54, 54, 254, 227, 151, 151, 253, 223, 79, 79, 253, 211, 160, 160, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 209, 209, 209, 252, 1, 1, 1, 253, 1, 1, 1, 245, 99, 99, 99, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 163, 80, 80, 253, 252, 3, 3, 255, 255, 0, 0, 255, 237, 16, 16, 255, 137, 104, 104, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 118, 118, 118, 252, 1, 1, 1, 253, 1, 1, 1, 242, 176, 176, 176, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 227, 148, 148, 253, 254, 6, 6, 255, 255, 0, 0, 255, 250, 27, 27, 255, 221, 185, 185, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 3, 3, 3, 254, 0, 0, 0, 241, 95, 95, 95, 253, 119, 119, 119, 252, 119, 119, 119, 252, 73, 71, 71, 253, 170, 43, 43, 255, 211, 53, 53, 255, 211, 53, 53, 255, 211, 53, 53, 255, 111, 31, 31, 254, 85, 83, 83, 253, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 4, 4, 4, 253, 1, 1, 1, 238, 167, 167, 167, 253, 215, 215, 215, 252, 215, 215, 215, 252, 133, 131, 131, 253, 168, 43, 43, 255, 211, 53, 53, 255, 211, 53, 53, 255, 211, 53, 53, 255, 117, 34, 34, 254, 150, 148, 148, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 10, 10, 10, 254, 0, 0, 0, 235, 91, 91, 91, 253, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 116, 118, 121, 252, 56, 104, 170, 254, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 53, 104, 172, 254, 110, 117, 126, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 8, 8, 8, 253, 1, 1, 1, 234, 161, 161, 161, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 210, 212, 214, 252, 79, 126, 191, 254, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 69, 121, 190, 254, 194, 201, 211, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 18, 18, 18, 254, 1, 1, 1, 253, 104, 104, 104, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 249, 13, 13, 255, 253, 10, 10, 255, 255, 9, 9, 255, 232, 27, 27, 254, 126, 107, 107, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 113, 113, 113, 252, 1, 1, 1, 253, 1, 1, 1, 249, 183, 183, 183, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 240, 84, 84, 254, 255, 9, 9, 255, 254, 12, 12, 255, 253, 17, 17, 255, 202, 138, 138, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 209, 209, 209, 252, 1, 1, 1, 253, 1, 1, 1, 245, 99, 99, 99, 252, 119, 119, 119, 252, 119, 119, 119, 252, 149, 93, 93, 253, 253, 2, 2, 255, 255, 0, 0, 255, 233, 19, 19, 254, 133, 107, 107, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 118, 118, 118, 252, 1, 1, 1, 253, 1, 1, 1, 242, 175, 175, 175, 253, 215, 215, 215, 252, 215, 215, 215, 252, 224, 170, 170, 252, 254, 4, 4, 255, 255, 0, 0, 255, 249, 32, 32, 254, 219, 191, 191, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 3, 3, 3, 254, 0, 0, 0, 241, 95, 95, 95, 253, 119, 119, 119, 252, 119, 119, 119, 252, 118, 118, 118, 252, 65, 53, 53, 253, 110, 29, 29, 255, 131, 36, 36, 255, 76, 33, 33, 254, 94, 92, 92, 253, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 4, 4, 4, 253, 1, 1, 1, 238, 167, 167, 167, 253, 215, 215, 215, 252, 215, 215, 215, 252, 213, 213, 213, 252, 106, 95, 95, 253, 111, 30, 30, 255, 134, 39, 39, 255, 92, 47, 47, 254, 165, 164, 164, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 10, 10, 10, 254, 0, 0, 0, 235, 91, 91, 91, 253, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 111, 117, 125, 252, 48, 103, 177, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 62, 106, 164, 254, 115, 118, 122, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 8, 8, 8, 253, 1, 1, 1, 234, 160, 160, 160, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 200, 205, 212, 252, 61, 115, 189, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 90, 134, 193, 254, 206, 209, 213, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 18, 18, 18, 254, 0, 0, 0, 228, 90, 90, 90, 253, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 230, 29, 29, 254, 255, 9, 9, 255, 255, 9, 9, 255, 212, 43, 43, 254, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 99, 99, 99, 252, 0, 0, 0, 246, 1, 1, 1, 225, 158, 158, 158, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 243, 73, 73, 254, 255, 9, 9, 255, 255, 9, 9, 255, 255, 10, 10, 255, 218, 202, 202, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 184, 184, 184, 252, 1, 1, 1, 248, 0, 0, 0, 222, 85, 85, 85, 253, 119, 119, 119, 252, 119, 119, 119, 252, 171, 73, 73, 253, 255, 0, 0, 255, 229, 22, 22, 254, 130, 109, 109, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 104, 104, 104, 252, 1, 1, 1, 250, 1, 1, 1, 218, 150, 150, 150, 253, 215, 215, 215, 252, 215, 215, 215, 252, 230, 135, 135, 253, 255, 0, 0, 255, 248, 38, 38, 254, 219, 196, 196, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 192, 192, 192, 252, 1, 1, 1, 251, 0, 0, 0, 213, 81, 81, 81, 253, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 111, 111, 111, 252, 102, 102, 102, 252, 117, 117, 117, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 109, 109, 109, 252, 1, 1, 1, 252, 1, 1, 1, 210, 143, 143, 143, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 201, 201, 201, 252, 183, 183, 183, 252, 212, 212, 212, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 199, 199, 199, 252, 2, 2, 2, 253, 0, 0, 0, 207, 77, 77, 77, 253, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 103, 115, 130, 253, 43, 102, 181, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 74, 108, 155, 254, 118, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 112, 112, 112, 252, 1, 1, 1, 253, 1, 1, 1, 206, 135, 135, 135, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 184, 195, 209, 252, 50, 108, 187, 255, 39, 101, 185, 255, 39, 101, 185, 255, 39, 101, 185, 255, 114, 149, 197, 254, 213, 214, 214, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 205, 205, 205, 252, 3, 3, 3, 253, 0, 0, 0, 178, 60, 60, 60, 253, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 136, 105, 105, 252, 201, 51, 51, 253, 195, 57, 57, 253, 130, 110, 110, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 69, 69, 69, 253, 0, 0, 0, 199, 0, 0, 0, 173, 105, 105, 105, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 222, 176, 176, 253, 250, 34, 34, 254, 254, 14, 14, 255, 233, 120, 120, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 130, 130, 130, 253, 1, 1, 1, 203, 0, 0, 0, 168, 56, 56, 56, 253, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 146, 95, 95, 253, 122, 116, 116, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 74, 74, 74, 253, 0, 0, 0, 208, 0, 0, 0, 164, 97, 97, 97, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 223, 172, 172, 253, 216, 209, 209, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 137, 137, 137, 253, 1, 1, 1, 213, 0, 0, 0, 160, 51, 51, 51, 253, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 78, 78, 78, 253, 0, 0, 0, 218, 0, 0, 0, 156, 89, 89, 89, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 145, 145, 145, 253, 1, 1, 1, 223, 0, 0, 0, 151, 47, 47, 47, 253, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 106, 116, 129, 252, 69, 107, 159, 254, 65, 106, 163, 254, 96, 114, 137, 253, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 83, 83, 83, 253, 0, 0, 0, 227, 0, 0, 0, 146, 81, 81, 81, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 189, 198, 210, 252, 108, 145, 196, 254, 97, 139, 195, 254, 164, 182, 206, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 153, 153, 153, 253, 1, 1, 1, 231, 0, 0, 0, 65, 5, 5, 5, 252, 99, 99, 99, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 105, 105, 105, 252, 9, 9, 9, 253, 0, 0, 0, 84, 0, 0, 0, 61, 8, 8, 8, 252, 176, 176, 176, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 214, 214, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 192, 192, 192, 252, 18, 18, 18, 254, 0, 0, 0, 89, 0, 0, 0, 57, 4, 4, 4, 251, 96, 96, 96, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 107, 107, 107, 252, 11, 11, 11, 253, 0, 0, 0, 94, 0, 0, 0, 53, 5, 5, 5, 250, 172, 172, 172, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 196, 196, 196, 252, 22, 22, 22, 254, 0, 0, 0, 98, 0, 0, 0, 50, 2, 2, 2, 248, 93, 93, 93, 253, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 109, 109, 109, 252, 13, 13, 13, 253, 0, 0, 0, 103, 0, 0, 0, 47, 4, 4, 4, 248, 166, 166, 166, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 199, 199, 199, 252, 27, 27, 27, 254, 0, 0, 0, 108, 0, 0, 0, 43, 1, 1, 1, 246, 90, 90, 90, 253, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 111, 111, 111, 252, 16, 16, 16, 253, 0, 0, 0, 112, 0, 0, 0, 40, 3, 3, 3, 245, 159, 159, 159, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 202, 202, 202, 252, 31, 31, 31, 254, 0, 0, 0, 117, 0, 0, 0, 0, 0, 0, 0, 130, 6, 6, 6, 253, 66, 66, 66, 253, 99, 99, 99, 252, 118, 118, 118, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 101, 101, 101, 252, 70, 70, 70, 253, 9, 9, 9, 253, 0, 0, 0, 152, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 126, 10, 10, 10, 253, 118, 118, 118, 253, 177, 177, 177, 252, 213, 213, 213, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 183, 183, 183, 252, 128, 128, 128, 253, 18, 18, 18, 254, 0, 0, 0, 156, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 122, 5, 5, 5, 252, 64, 64, 64, 253, 98, 98, 98, 252, 117, 117, 117, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 102, 102, 102, 252, 72, 72, 72, 253, 10, 10, 10, 253, 0, 0, 0, 160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 118, 9, 9, 9, 252, 114, 114, 114, 253, 176, 176, 176, 252, 212, 212, 212, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 184, 184, 184, 252, 132, 132, 132, 253, 20, 20, 20, 254, 0, 0, 0, 164, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 114, 4, 4, 4, 252, 62, 62, 62, 253, 97, 97, 97, 252, 117, 117, 117, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 103, 103, 103, 252, 74, 74, 74, 253, 12, 12, 12, 253, 0, 0, 0, 168, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 110, 7, 7, 7, 252, 110, 110, 110, 253, 174, 174, 174, 252, 211, 211, 211, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 186, 186, 186, 252, 135, 135, 135, 253, 23, 23, 23, 254, 0, 0, 0, 173, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 105, 3, 3, 3, 251, 60, 60, 60, 253, 96, 96, 96, 252, 117, 117, 117, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 103, 103, 103, 252, 75, 75, 75, 253, 14, 14, 14, 253, 0, 0, 0, 177, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 101, 5, 5, 5, 250, 106, 106, 106, 253, 173, 173, 173, 252, 210, 210, 210, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 188, 188, 188, 252, 138, 138, 138, 253, 27, 27, 27, 254, 0, 0, 0, 181, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 0, 0, 0, 198, 0, 0, 0, 245, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 247, 0, 0, 0, 203, 0, 0, 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 70, 1, 1, 1, 197, 1, 1, 1, 245, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 248, 1, 1, 1, 204, 0, 0, 0, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 0, 0, 0, 195, 0, 0, 0, 244, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 248, 0, 0, 0, 205, 0, 0, 0, 93, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 1, 1, 1, 194, 1, 1, 1, 244, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 249, 1, 1, 1, 206, 0, 0, 0, 97, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62, 0, 0, 0, 192, 0, 0, 0, 243, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 249, 0, 0, 0, 206, 0, 0, 0, 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59, 0, 0, 0, 191, 1, 1, 1, 243, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 250, 1, 1, 1, 208, 0, 0, 0, 102, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57, 0, 0, 0, 189, 0, 0, 0, 242, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 250, 0, 0, 0, 208, 0, 0, 0, 105, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54, 0, 0, 0, 188, 1, 1, 1, 242, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 251, 1, 1, 1, 210, 0, 0, 0, 107, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 119, 0, 0, 0, 177, 0, 0, 0, 212, 0, 0, 0, 212, 0, 0, 0, 212, 0, 0, 0, 212, 0, 0, 0, 212, 0, 0, 0, 212, 0, 0, 0, 212, 0, 0, 0, 212, 0, 0, 0, 212, 0, 0, 0, 212, 0, 0, 0, 212, 0, 0, 0, 212, 0, 0, 0, 212, 0, 0, 0, 212, 0, 0, 0, 212, 0, 0, 0, 212, 0, 0, 0, 212, 0, 0, 0, 212, 0, 0, 0, 212, 0, 0, 0, 212, 0, 0, 0, 212, 0, 0, 0, 212, 0, 0, 0, 196, 0, 0, 0, 146, 0, 0, 7, 58, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 117, 0, 0, 0, 176, 1, 1, 1, 213, 1, 1, 1, 213, 1, 1, 1, 213, 1, 1, 1, 213, 1, 1, 1, 213, 1, 1, 1, 213, 1, 1, 1, 213, 1, 1, 1, 213, 1, 1, 1, 213, 1, 1, 1, 213, 1, 1, 1, 213, 1, 1, 1, 213, 1, 1, 1, 213, 1, 1, 1, 213, 1, 1, 1, 213, 1, 1, 1, 213, 1, 1, 1, 213, 1, 1, 1, 213, 1, 1, 1, 213, 1, 1, 1, 213, 1, 1, 1, 213, 1, 1, 1, 213, 1, 1, 1, 197, 0, 0, 0, 147, 0, 0, 0, 57, 0, 0, 0, 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, 25, 0, 0, 0, 25, 0, 0, 0, 25, 0, 0, 0, 25, 0, 0, 0, 25, 0, 0, 0, 25, 0, 0, 0, 25, 0, 0, 0, 25, 0, 0, 0, 25, 0, 0, 0, 25, 0, 0, 0, 25, 0, 0, 0, 25, 0, 0, 0, 25, 0, 0, 0, 25, 0, 0, 0, 25, 0, 0, 0, 25, 0, 0, 0, 25, 0, 0, 0, 25, 0, 0, 0, 25, 0, 0, 0, 25, 0, 0, 0, 25, 0, 0, 0, 25, 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, 4, 0, 0, 0, 25, 0, 0, 0, 25, 0, 0, 0, 25, 0, 0, 0, 25, 0, 0, 0, 25, 0, 0, 0, 25, 0, 0, 0, 25, 0, 0, 0, 25, 0, 0, 0, 25, 0, 0, 0, 25, 0, 0, 0, 25, 0, 0, 0, 25, 0, 0, 0, 25, 0, 0, 0, 25, 0, 0, 0, 25, 0, 0, 0, 25, 0, 0, 0, 25, 0, 0, 0, 25, 0, 0, 0, 25, 0, 0, 0, 25, 0, 0, 0, 25, 0, 0, 0, 25, 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, 3, 0, 0, 0, 25, 0, 0, 0, 25, 0, 0, 0, 25, 0, 0, 0, 25, 0, 0, 0, 25, 0, 0, 0, 25, 0, 0, 0, 25, 0, 0, 0, 25, 0, 0, 0, 25, 0, 0, 0, 25, 0, 0, 0, 25, 0, 0, 0, 25, 0, 0, 0, 25, 0, 0, 0, 25, 0, 0, 0, 25, 0, 0, 0, 25, 0, 0, 0, 25, 0, 0, 0, 25, 0, 0, 0, 25, 0, 0, 0, 25, 0, 0, 0, 25, 0, 0, 0, 25, 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, 3, 0, 0, 0, 25, 0, 0, 0, 25, 0, 0, 0, 25, 0, 0, 0, 25, 0, 0, 0, 25, 0, 0, 0, 25, 0, 0, 0, 25, 0, 0, 0, 25, 0, 0, 0, 25, 0, 0, 0, 25, 0, 0, 0, 25, 0, 0, 0, 25, 0, 0, 0, 25, 0, 0, 0, 25, 0, 0, 0, 25, 0, 0, 0, 25, 0, 0, 0, 25, 0, 0, 0, 25, 0, 0, 0, 25, 0, 0, 0, 25, 0, 0, 0, 25, 0, 0, 0, 25, 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, 70, 0, 0, 0, 183, 0, 0, 0, 235, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 0, 0, 0, 229, 0, 0, 0, 176, 0, 0, 0, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 0, 0, 0, 183, 1, 1, 1, 234, 1, 1, 1, 254, 1, 1, 1, 254, 1, 1, 1, 254, 1, 1, 1, 254, 1, 1, 1, 254, 1, 1, 1, 254, 1, 1, 1, 254, 1, 1, 1, 254, 1, 1, 1, 254, 1, 1, 1, 254, 1, 1, 1, 254, 1, 1, 1, 254, 1, 1, 1, 254, 1, 1, 1, 254, 1, 1, 1, 254, 1, 1, 1, 254, 1, 1, 1, 254, 1, 1, 1, 254, 1, 1, 1, 254, 1, 1, 1, 254, 1, 1, 1, 254, 1, 1, 1, 254, 1, 1, 1, 230, 0, 0, 0, 177, 0, 0, 0, 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 0, 0, 0, 218, 25, 25, 25, 253, 64, 64, 64, 253, 82, 82, 82, 253, 84, 84, 84, 253, 84, 84, 84, 253, 84, 84, 84, 253, 84, 84, 84, 253, 84, 84, 84, 253, 84, 84, 84, 253, 84, 84, 84, 253, 84, 84, 84, 253, 84, 84, 84, 253, 84, 84, 84, 253, 84, 84, 84, 253, 84, 84, 84, 253, 84, 84, 84, 253, 84, 84, 84, 253, 84, 84, 84, 253, 84, 84, 84, 253, 84, 84, 84, 253, 84, 84, 84, 253, 84, 84, 84, 253, 84, 84, 84, 253, 84, 84, 84, 253, 44, 43, 88, 253, 2, 0, 70, 255, 0, 0, 7, 255, 0, 0, 22, 140, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 45, 0, 0, 0, 217, 44, 44, 44, 254, 114, 114, 114, 253, 148, 148, 148, 253, 151, 151, 151, 253, 151, 151, 151, 253, 151, 151, 151, 253, 151, 151, 151, 253, 151, 151, 151, 253, 151, 151, 151, 253, 151, 151, 151, 253, 151, 151, 151, 253, 151, 151, 151, 253, 151, 151, 151, 253, 151, 151, 151, 253, 151, 151, 151, 253, 151, 151, 151, 253, 151, 151, 151, 253, 151, 151, 151, 253, 151, 151, 151, 253, 151, 151, 151, 253, 151, 151, 151, 253, 151, 151, 151, 253, 151, 151, 151, 253, 139, 139, 148, 253, 22, 19, 135, 254, 4, 1, 112, 255, 4, 3, 27, 251, 0, 0, 0, 131, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 6, 6, 6, 253, 62, 62, 62, 253, 92, 92, 92, 253, 107, 107, 107, 252, 107, 107, 107, 252, 107, 107, 107, 252, 107, 107, 107, 252, 107, 107, 107, 252, 107, 107, 107, 252, 107, 107, 107, 252, 107, 107, 107, 252, 107, 107, 107, 252, 104, 104, 104, 252, 105, 105, 105, 252, 107, 107, 107, 252, 107, 107, 107, 252, 107, 107, 107, 252, 107, 107, 107, 252, 107, 107, 107, 252, 107, 107, 107, 252, 107, 107, 107, 252, 107, 107, 107, 252, 107, 107, 107, 252, 107, 107, 107, 252, 107, 107, 107, 252, 88, 88, 88, 253, 55, 55, 55, 253, 2, 2, 2, 249, 0, 0, 0, 106, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 133, 10, 10, 10, 253, 110, 110, 110, 253, 165, 165, 165, 253, 194, 194, 194, 252, 194, 194, 194, 252, 194, 194, 194, 252, 194, 194, 194, 252, 194, 194, 194, 252, 194, 194, 194, 252, 194, 194, 194, 252, 194, 194, 194, 252, 194, 194, 194, 252, 193, 193, 193, 252, 186, 186, 186, 252, 194, 194, 194, 252, 194, 194, 194, 252, 194, 194, 194, 252, 194, 194, 194, 252, 194, 194, 194, 252, 194, 194, 194, 252, 194, 194, 194, 252, 194, 194, 194, 252, 194, 194, 194, 252, 194, 194, 194, 252, 194, 194, 194, 252, 161, 161, 161, 253, 101, 101, 101, 253, 5, 5, 5, 250, 0, 0, 0, 110, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 217, 54, 54, 54, 253, 118, 118, 118, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 111, 111, 123, 252, 15, 11, 168, 255, 5, 0, 173, 255, 4, 0, 141, 255, 0, 0, 14, 255, 0, 0, 28, 104, 0, 0, 0, 9, 0, 0, 0, 214, 95, 95, 95, 253, 212, 212, 212, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 92, 89, 190, 254, 5, 0, 173, 255, 5, 0, 173, 255, 11, 7, 164, 255, 6, 5, 38, 254, 0, 0, 0, 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 7, 7, 7, 253, 101, 101, 101, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 31, 31, 31, 254, 56, 56, 56, 254, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 90, 90, 90, 253, 2, 2, 2, 248, 0, 0, 0, 48, 0, 0, 0, 72, 12, 12, 12, 253, 180, 180, 180, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 86, 86, 86, 254, 71, 71, 71, 254, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 167, 167, 167, 253, 5, 5, 5, 250, 0, 0, 0, 52, 0, 0, 0, 113, 25, 25, 25, 253, 118, 118, 118, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 48, 45, 152, 254, 5, 0, 173, 255, 5, 0, 173, 255, 5, 0, 173, 255, 3, 0, 110, 255, 0, 0, 5, 231, 0, 0, 1, 109, 42, 42, 42, 254, 212, 212, 212, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 166, 166, 205, 253, 6, 1, 173, 255, 5, 0, 173, 255, 5, 0, 173, 255, 5, 0, 173, 255, 25, 21, 137, 254, 1, 1, 1, 230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 68, 68, 68, 253, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 51, 51, 51, 253, 0, 0, 0, 255, 73, 73, 73, 253, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 52, 52, 52, 253, 0, 0, 0, 167, 1, 1, 1, 195, 119, 119, 119, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 124, 124, 124, 253, 0, 0, 0, 255, 95, 95, 95, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 99, 99, 99, 253, 0, 0, 0, 171, 0, 0, 0, 170, 62, 62, 62, 253, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 89, 88, 133, 253, 5, 0, 173, 255, 5, 0, 173, 255, 5, 0, 173, 255, 5, 0, 173, 255, 5, 0, 165, 255, 0, 0, 3, 254, 0, 0, 0, 183, 109, 109, 109, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 210, 210, 214, 252, 39, 35, 179, 254, 5, 0, 173, 255, 5, 0, 173, 255, 5, 0, 173, 255, 5, 0, 173, 255, 28, 24, 175, 254, 5, 5, 5, 253, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 1, 1, 246, 101, 101, 101, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 117, 117, 117, 252, 49, 49, 49, 253, 17, 17, 17, 255, 68, 68, 68, 255, 2, 2, 2, 255, 96, 96, 96, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 85, 85, 85, 253, 0, 0, 0, 218, 1, 1, 1, 243, 177, 177, 177, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 114, 114, 114, 253, 8, 8, 8, 255, 79, 79, 79, 255, 0, 0, 0, 255, 154, 154, 154, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 156, 156, 156, 253, 1, 1, 1, 223, 0, 0, 0, 206, 81, 81, 81, 253, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 115, 115, 121, 252, 20, 16, 165, 254, 5, 0, 173, 255, 5, 0, 173, 255, 5, 0, 173, 255, 5, 0, 173, 255, 5, 0, 173, 255, 1, 0, 21, 254, 1, 1, 1, 229, 143, 143, 143, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 109, 107, 194, 253, 5, 0, 173, 255, 5, 0, 173, 255, 5, 0, 173, 255, 5, 0, 173, 255, 5, 0, 173, 255, 5, 0, 173, 255, 27, 27, 36, 254, 0, 0, 0, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 1, 1, 1, 253, 116, 116, 116, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 103, 103, 103, 252, 23, 23, 23, 254, 54, 54, 54, 255, 195, 195, 195, 255, 211, 211, 211, 255, 45, 45, 45, 255, 17, 17, 17, 254, 115, 115, 115, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 100, 100, 100, 252, 1, 1, 1, 249, 1, 1, 1, 253, 206, 206, 206, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 199, 199, 199, 252, 59, 59, 59, 254, 37, 37, 37, 255, 181, 181, 181, 255, 215, 215, 215, 255, 70, 70, 70, 255, 11, 11, 11, 255, 189, 189, 189, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 185, 185, 185, 252, 1, 1, 1, 253, 0, 0, 0, 208, 83, 83, 83, 253, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 57, 54, 147, 254, 5, 0, 173, 255, 5, 0, 173, 255, 5, 0, 173, 255, 5, 0, 173, 255, 5, 0, 173, 255, 24, 21, 163, 254, 13, 13, 17, 254, 1, 1, 1, 230, 146, 146, 146, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 180, 179, 208, 252, 10, 5, 174, 255, 5, 0, 173, 255, 5, 0, 173, 255, 5, 0, 173, 255, 5, 0, 173, 255, 5, 0, 173, 255, 122, 120, 196, 253, 33, 33, 33, 254, 0, 0, 0, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 1, 1, 1, 253, 117, 117, 117, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 80, 80, 80, 253, 6, 6, 6, 255, 105, 105, 105, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 191, 191, 191, 255, 15, 15, 15, 255, 37, 37, 37, 254, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 100, 100, 100, 252, 1, 1, 1, 249, 1, 1, 1, 253, 207, 207, 207, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 165, 165, 165, 253, 21, 21, 21, 254, 80, 80, 80, 255, 210, 210, 210, 255, 215, 215, 215, 255, 215, 215, 215, 255, 205, 205, 205, 255, 33, 33, 33, 255, 46, 46, 46, 254, 213, 213, 213, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 186, 186, 186, 252, 1, 1, 1, 253, 0, 0, 0, 208, 83, 83, 83, 253, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 97, 96, 129, 253, 7, 2, 172, 255, 5, 0, 173, 255, 5, 0, 173, 255, 5, 0, 173, 255, 5, 0, 173, 255, 23, 19, 163, 254, 109, 109, 124, 252, 16, 16, 16, 254, 1, 1, 1, 230, 146, 146, 146, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 213, 213, 215, 252, 52, 48, 182, 254, 5, 0, 173, 255, 5, 0, 173, 255, 5, 0, 173, 255, 5, 0, 173, 255, 5, 0, 173, 255, 120, 118, 196, 253, 215, 215, 215, 252, 33, 33, 33, 254, 0, 0, 0, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 1, 1, 1, 253, 117, 117, 117, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 117, 117, 117, 252, 47, 47, 47, 254, 18, 18, 18, 255, 161, 161, 161, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 153, 153, 153, 255, 0, 0, 0, 255, 71, 71, 71, 253, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 100, 100, 100, 252, 1, 1, 1, 249, 1, 1, 1, 253, 207, 207, 207, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 112, 112, 112, 253, 8, 8, 8, 255, 140, 140, 140, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 177, 177, 177, 255, 6, 6, 6, 255, 89, 89, 89, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 186, 186, 186, 252, 1, 1, 1, 253, 0, 0, 0, 208, 83, 83, 83, 253, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 117, 117, 120, 252, 27, 23, 162, 254, 5, 0, 173, 255, 5, 0, 173, 255, 5, 0, 173, 255, 5, 0, 173, 255, 22, 18, 164, 254, 108, 108, 124, 252, 119, 119, 119, 252, 16, 16, 16, 254, 1, 1, 1, 230, 146, 146, 146, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 126, 124, 197, 253, 5, 0, 173, 255, 5, 0, 173, 255, 5, 0, 173, 255, 5, 0, 173, 255, 5, 0, 173, 255, 115, 113, 195, 253, 215, 215, 215, 252, 215, 215, 215, 252, 33, 33, 33, 254, 0, 0, 0, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 1, 1, 1, 253, 117, 117, 117, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 101, 101, 101, 252, 21, 21, 21, 254, 56, 56, 56, 255, 196, 196, 196, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 104, 104, 104, 255, 1, 1, 1, 255, 94, 94, 94, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 100, 100, 100, 252, 1, 1, 1, 249, 1, 1, 1, 253, 207, 207, 207, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 196, 196, 196, 252, 55, 55, 55, 254, 39, 39, 39, 255, 182, 182, 182, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 136, 136, 136, 255, 0, 0, 0, 255, 147, 147, 147, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 186, 186, 186, 252, 1, 1, 1, 253, 0, 0, 0, 208, 83, 83, 83, 253, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 66, 65, 143, 253, 5, 0, 173, 255, 5, 0, 173, 255, 5, 0, 173, 255, 5, 0, 173, 255, 21, 17, 165, 255, 107, 107, 125, 252, 119, 119, 119, 252, 119, 119, 119, 252, 16, 16, 16, 254, 1, 1, 1, 230, 146, 146, 146, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 191, 190, 210, 252, 16, 11, 175, 255, 5, 0, 173, 255, 5, 0, 173, 255, 5, 0, 173, 255, 5, 0, 173, 255, 111, 109, 194, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 33, 33, 33, 254, 0, 0, 0, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 1, 1, 1, 253, 117, 117, 117, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 78, 78, 78, 253, 5, 5, 5, 255, 112, 112, 112, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 213, 213, 213, 255, 52, 52, 52, 255, 15, 15, 15, 254, 113, 113, 113, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 100, 100, 100, 252, 1, 1, 1, 249, 1, 1, 1, 253, 207, 207, 207, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 161, 161, 161, 253, 18, 18, 18, 254, 86, 86, 86, 255, 212, 212, 212, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 79, 79, 79, 255, 9, 9, 9, 255, 185, 185, 185, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 186, 186, 186, 252, 1, 1, 1, 253, 0, 0, 0, 208, 83, 83, 83, 253, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 129, 129, 135, 253, 105, 103, 179, 255, 17, 12, 174, 255, 5, 0, 173, 255, 5, 0, 173, 255, 20, 16, 166, 255, 107, 106, 125, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 16, 16, 16, 254, 1, 1, 1, 230, 146, 146, 146, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 90, 87, 185, 254, 5, 0, 173, 255, 5, 0, 173, 255, 5, 0, 173, 255, 5, 0, 173, 255, 107, 105, 193, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 33, 33, 33, 254, 0, 0, 0, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 1, 1, 1, 253, 117, 117, 117, 252, 119, 119, 119, 252, 119, 119, 119, 252, 116, 116, 116, 252, 44, 44, 44, 254, 21, 21, 21, 255, 164, 164, 164, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 197, 197, 197, 255, 19, 19, 19, 255, 34, 34, 34, 254, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 100, 100, 100, 252, 1, 1, 1, 249, 1, 1, 1, 253, 207, 207, 207, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 105, 105, 105, 253, 10, 10, 10, 255, 145, 145, 145, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 209, 209, 209, 255, 39, 39, 39, 255, 41, 41, 41, 254, 210, 210, 210, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 186, 186, 186, 252, 1, 1, 1, 253, 0, 0, 0, 208, 83, 83, 83, 253, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 121, 121, 121, 252, 173, 173, 179, 254, 188, 188, 188, 255, 146, 146, 184, 255, 5, 1, 173, 255, 19, 15, 166, 255, 105, 105, 125, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 16, 16, 16, 254, 1, 1, 1, 230, 146, 146, 146, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 191, 191, 200, 253, 188, 188, 188, 255, 111, 109, 181, 255, 5, 0, 173, 255, 5, 0, 173, 255, 103, 101, 192, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 33, 33, 33, 254, 0, 0, 0, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 1, 1, 1, 253, 117, 117, 117, 252, 119, 119, 119, 252, 100, 100, 100, 252, 20, 20, 20, 254, 58, 58, 58, 255, 199, 199, 199, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 161, 161, 161, 255, 1, 1, 1, 255, 66, 66, 66, 253, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 100, 100, 100, 252, 1, 1, 1, 249, 1, 1, 1, 253, 207, 207, 207, 252, 215, 215, 215, 252, 195, 195, 195, 252, 54, 54, 54, 254, 42, 42, 42, 255, 186, 186, 186, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 183, 183, 183, 255, 8, 8, 8, 255, 82, 82, 82, 254, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 186, 186, 186, 252, 1, 1, 1, 253, 0, 0, 0, 208, 83, 83, 83, 253, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 149, 149, 157, 254, 188, 188, 188, 255, 188, 188, 188, 255, 188, 188, 188, 255, 60, 57, 170, 255, 104, 104, 126, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 16, 16, 16, 254, 1, 1, 1, 230, 146, 146, 146, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 204, 204, 209, 252, 184, 184, 188, 255, 188, 188, 188, 255, 188, 188, 188, 255, 43, 40, 176, 255, 99, 96, 192, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 33, 33, 33, 254, 0, 0, 0, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 1, 1, 1, 253, 117, 117, 117, 252, 77, 77, 77, 253, 5, 5, 5, 255, 114, 114, 114, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 113, 113, 113, 255, 1, 1, 1, 255, 90, 90, 90, 253, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 100, 100, 100, 252, 1, 1, 1, 249, 1, 1, 1, 253, 207, 207, 207, 252, 160, 160, 160, 253, 16, 16, 16, 254, 88, 88, 88, 255, 212, 212, 212, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 145, 145, 145, 255, 0, 0, 0, 255, 139, 139, 139, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 186, 186, 186, 252, 1, 1, 1, 253, 0, 0, 0, 208, 83, 83, 83, 253, 167, 83, 83, 253, 235, 31, 31, 254, 220, 43, 43, 254, 145, 99, 99, 253, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 128, 128, 133, 253, 185, 185, 187, 255, 188, 188, 188, 255, 188, 188, 188, 255, 179, 179, 185, 255, 126, 126, 133, 253, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 16, 16, 16, 254, 1, 1, 1, 230, 146, 146, 146, 253, 230, 140, 140, 253, 249, 44, 44, 254, 244, 70, 70, 254, 222, 181, 181, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 187, 187, 192, 254, 188, 188, 188, 255, 188, 188, 188, 255, 188, 188, 188, 255, 159, 158, 193, 254, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 33, 33, 33, 254, 0, 0, 0, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 1, 1, 1, 253, 117, 117, 117, 252, 13, 13, 13, 254, 110, 110, 110, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 58, 58, 58, 255, 12, 12, 12, 255, 110, 110, 110, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 100, 100, 100, 252, 1, 1, 1, 249, 1, 1, 1, 253, 207, 207, 207, 252, 58, 58, 58, 254, 81, 81, 81, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 86, 86, 86, 255, 7, 7, 7, 255, 179, 179, 179, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 186, 186, 186, 252, 1, 1, 1, 253, 0, 0, 0, 208, 89, 78, 78, 253, 247, 23, 23, 255, 255, 17, 17, 255, 255, 17, 17, 255, 216, 46, 46, 254, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 115, 115, 115, 252, 92, 92, 92, 253, 72, 72, 72, 254, 71, 71, 71, 254, 111, 111, 111, 254, 186, 186, 187, 255, 188, 188, 188, 255, 179, 179, 186, 255, 128, 128, 134, 253, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 16, 16, 16, 254, 1, 1, 1, 230, 148, 134, 134, 253, 253, 25, 25, 255, 255, 17, 17, 255, 255, 17, 17, 255, 242, 80, 80, 254, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 209, 209, 209, 252, 162, 162, 162, 253, 152, 152, 152, 253, 163, 163, 169, 253, 188, 188, 188, 255, 188, 188, 188, 255, 188, 188, 188, 255, 181, 181, 193, 254, 214, 214, 214, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 33, 33, 33, 254, 0, 0, 0, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 1, 1, 1, 253, 117, 117, 117, 252, 87, 87, 87, 253, 12, 12, 12, 255, 189, 189, 189, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 202, 202, 202, 255, 23, 23, 23, 255, 30, 30, 30, 254, 118, 118, 118, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 100, 100, 100, 252, 1, 1, 1, 249, 1, 1, 1, 253, 207, 207, 207, 252, 179, 179, 179, 252, 7, 7, 7, 255, 169, 169, 169, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 212, 212, 212, 255, 44, 44, 44, 255, 35, 35, 35, 254, 206, 206, 206, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 186, 186, 186, 252, 1, 1, 1, 253, 0, 0, 0, 208, 114, 59, 59, 253, 255, 17, 17, 255, 255, 17, 17, 255, 255, 17, 17, 255, 249, 20, 20, 255, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 112, 111, 111, 252, 102, 55, 55, 255, 80, 53, 53, 255, 59, 59, 59, 255, 59, 59, 59, 255, 59, 59, 59, 255, 107, 107, 109, 255, 180, 180, 186, 255, 128, 128, 135, 253, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 16, 16, 16, 254, 1, 1, 1, 230, 156, 93, 93, 253, 255, 17, 17, 255, 255, 17, 17, 255, 255, 17, 17, 255, 252, 31, 31, 255, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 148, 148, 148, 253, 69, 69, 69, 255, 59, 59, 59, 255, 59, 59, 59, 255, 60, 60, 60, 255, 136, 136, 139, 255, 188, 188, 188, 255, 181, 181, 193, 254, 213, 213, 214, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 33, 33, 33, 254, 0, 0, 0, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 1, 1, 1, 253, 117, 117, 117, 252, 119, 119, 119, 252, 54, 54, 54, 253, 47, 47, 47, 255, 214, 214, 214, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 167, 167, 167, 255, 1, 1, 1, 255, 59, 59, 59, 253, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 100, 100, 100, 252, 1, 1, 1, 249, 1, 1, 1, 253, 207, 207, 207, 252, 215, 215, 215, 252, 134, 134, 134, 253, 26, 26, 26, 255, 203, 203, 203, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 215, 215, 215, 255, 187, 187, 187, 255, 10, 10, 10, 255, 73, 73, 73, 254, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 186, 186, 186, 252, 1, 1, 1, 253, 0, 0, 0, 208, 113, 60, 60, 253, 255, 17, 17, 255, 255, 17, 17, 255, 255, 17, 17, 255, 251, 20, 20, 255, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 130, 110, 110, 252, 222, 21, 21, 254, 255, 0, 0, 255, 252, 1, 1, 255, 172, 25, 25, 255, 61, 58, 58, 255, 59, 59, 59, 255, 59, 59, 59, 255, 125, 125, 130, 253, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 16, 16, 16, 254, 1, 1, 1, 230, 156, 94, 94, 253, 255, 17, 17, 255, 255, 17, 17, 255, 255, 17, 17, 255, 252, 29, 29, 255, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 207, 131, 131, 253, 206, 15, 15, 255, 201, 16, 16, 255, 110, 44, 44, 255, 59, 59, 59, 255, 59, 59, 59, 255, 61, 61, 61, 255, 175, 175, 186, 253, 213, 213, 214, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 33, 33, 33, 254, 0, 0, 0, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 1, 1, 1, 253, 117, 117, 117, 252, 119, 119, 119, 252, 119, 119, 119, 252, 27, 27, 27, 254, 40, 49, 122, 255, 65, 84, 237, 255, 65, 84, 237, 255, 57, 78, 238, 255, 43, 65, 240, 255, 43, 65, 240, 255, 43, 65, 240, 255, 43, 65, 240, 255, 43, 65, 240, 255, 43, 65, 240, 255, 43, 65, 240, 255, 43, 65, 240, 255, 43, 65, 240, 255, 43, 65, 240, 255, 43, 65, 240, 255, 43, 65, 240, 255, 43, 65, 240, 255, 43, 65, 240, 255, 43, 65, 236, 255, 17, 22, 66, 255, 1, 1, 1, 255, 87, 87, 87, 253, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 100, 100, 100, 252, 1, 1, 1, 249, 1, 1, 1, 253, 207, 207, 207, 252, 215, 215, 215, 252, 215, 215, 215, 252, 74, 74, 74, 254, 22, 30, 94, 255, 43, 65, 240, 255, 43, 65, 240, 255, 43, 65, 240, 255, 43, 65, 240, 255, 43, 65, 240, 255, 43, 65, 240, 255, 43, 65, 240, 255, 43, 65, 240, 255, 43, 65, 240, 255, 43, 65, 240, 255, 43, 65, 240, 255, 43, 65, 240, 255, 43, 65, 240, 255, 43, 65, 240, 255, 43, 65, 240, 255, 43, 65, 240, 255, 43, 65, 240, 255, 43, 65, 240, 255, 21, 29, 93, 255, 0, 0, 0, 255, 128, 128, 128, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 186, 186, 186, 252, 1, 1, 1, 253, 0, 0, 0, 208, 112, 61, 61, 253, 255, 17, 17, 255, 255, 17, 17, 255, 255, 17, 17, 255, 252, 19, 19, 255, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 202, 45, 45, 254, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 165, 27, 27, 255, 59, 59, 59, 255, 59, 59, 59, 255, 114, 114, 114, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 16, 16, 16, 254, 1, 1, 1, 230, 155, 96, 96, 253, 255, 17, 17, 255, 255, 17, 17, 255, 255, 17, 17, 255, 253, 27, 27, 255, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 225, 159, 159, 253, 254, 1, 1, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 128, 38, 38, 255, 59, 59, 59, 255, 59, 59, 59, 255, 182, 182, 182, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 33, 33, 33, 254, 0, 0, 0, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 1, 1, 1, 253, 117, 117, 117, 252, 119, 119, 119, 252, 119, 119, 119, 252, 105, 105, 105, 252, 7, 7, 12, 254, 0, 22, 195, 255, 0, 28, 246, 255, 0, 28, 246, 255, 0, 28, 246, 255, 0, 28, 246, 255, 0, 28, 246, 255, 0, 28, 246, 255, 0, 28, 246, 255, 0, 28, 246, 255, 0, 28, 246, 255, 0, 28, 246, 255, 0, 28, 246, 255, 0, 28, 246, 255, 0, 28, 246, 255, 0, 28, 246, 255, 0, 28, 246, 255, 0, 25, 220, 255, 0, 6, 57, 255, 33, 33, 33, 254, 44, 44, 44, 254, 55, 55, 55, 253, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 100, 100, 100, 252, 1, 1, 1, 249, 1, 1, 1, 253, 207, 207, 207, 252, 215, 215, 215, 252, 215, 215, 215, 252, 207, 207, 207, 252, 31, 31, 31, 254, 0, 19, 165, 255, 0, 28, 246, 255, 0, 28, 246, 255, 0, 28, 246, 255, 0, 28, 246, 255, 0, 28, 246, 255, 0, 28, 246, 255, 0, 28, 246, 255, 0, 28, 246, 255, 0, 28, 246, 255, 0, 28, 246, 255, 0, 28, 246, 255, 0, 28, 246, 255, 0, 28, 246, 255, 0, 28, 246, 255, 0, 28, 246, 255, 0, 26, 232, 255, 0, 10, 79, 255, 43, 43, 43, 254, 97, 97, 97, 253, 69, 69, 69, 254, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 186, 186, 186, 252, 1, 1, 1, 253, 0, 0, 0, 208, 110, 62, 62, 253, 255, 17, 17, 255, 255, 17, 17, 255, 255, 17, 17, 255, 254, 17, 17, 255, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 120, 118, 118, 252, 247, 6, 6, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 253, 1, 1, 255, 86, 51, 51, 255, 61, 61, 61, 255, 118, 118, 118, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 16, 16, 16, 254, 1, 1, 1, 230, 155, 98, 98, 253, 255, 17, 17, 255, 255, 17, 17, 255, 255, 17, 17, 255, 253, 25, 25, 255, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 243, 62, 62, 254, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 248, 2, 2, 255, 78, 53, 53, 255, 59, 59, 59, 255, 187, 187, 187, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 33, 33, 33, 254, 0, 0, 0, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 1, 1, 1, 253, 117, 117, 117, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 84, 84, 84, 253, 0, 4, 33, 255, 0, 26, 232, 255, 0, 28, 246, 255, 0, 28, 246, 255, 0, 28, 246, 255, 0, 28, 246, 255, 0, 28, 246, 255, 0, 28, 246, 255, 0, 28, 246, 255, 0, 28, 246, 255, 0, 28, 246, 255, 0, 28, 246, 255, 0, 28, 246, 255, 0, 28, 246, 255, 0, 28, 246, 255, 0, 20, 175, 255, 1, 3, 20, 255, 64, 64, 64, 253, 119, 119, 119, 252, 117, 117, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 100, 100, 100, 252, 1, 1, 1, 249, 1, 1, 1, 253, 207, 207, 207, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 174, 174, 174, 252, 4, 5, 19, 255, 0, 24, 214, 255, 0, 28, 246, 255, 0, 28, 246, 255, 0, 28, 246, 255, 0, 28, 246, 255, 0, 28, 246, 255, 0, 28, 246, 255, 0, 28, 246, 255, 0, 28, 246, 255, 0, 28, 246, 255, 0, 28, 246, 255, 0, 28, 246, 255, 0, 28, 246, 255, 0, 28, 246, 255, 0, 22, 196, 255, 0, 4, 33, 255, 90, 90, 90, 253, 212, 212, 212, 252, 213, 213, 214, 252, 214, 214, 214, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 186, 186, 186, 252, 1, 1, 1, 253, 0, 0, 0, 208, 103, 68, 68, 253, 255, 17, 17, 255, 255, 17, 17, 255, 255, 17, 17, 255, 255, 17, 17, 255, 128, 111, 111, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 132, 105, 105, 252, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 156, 30, 30, 255, 73, 73, 73, 254, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 16, 16, 16, 254, 1, 1, 1, 230, 153, 110, 110, 253, 255, 17, 17, 255, 255, 17, 17, 255, 255, 17, 17, 255, 255, 17, 17, 255, 216, 207, 207, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 246, 12, 12, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 157, 29, 29, 255, 64, 64, 64, 255, 212, 212, 212, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 33, 33, 33, 254, 0, 0, 0, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 1, 1, 1, 253, 117, 117, 117, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 50, 50, 50, 253, 0, 9, 82, 255, 0, 28, 246, 255, 0, 28, 246, 255, 0, 28, 246, 255, 0, 28, 246, 255, 0, 28, 246, 255, 0, 28, 246, 255, 0, 28, 246, 255, 0, 28, 246, 255, 0, 28, 246, 255, 0, 28, 246, 255, 0, 28, 246, 255, 0, 28, 242, 255, 0, 13, 115, 255, 13, 13, 14, 254, 92, 92, 92, 253, 119, 119, 119, 252, 119, 119, 119, 252, 63, 79, 187, 253, 116, 117, 122, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 100, 100, 100, 252, 1, 1, 1, 249, 1, 1, 1, 253, 207, 207, 207, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 127, 127, 127, 253, 0, 6, 52, 254, 0, 27, 241, 255, 0, 28, 246, 255, 0, 28, 246, 255, 0, 28, 246, 255, 0, 28, 246, 255, 0, 28, 246, 255, 0, 28, 246, 255, 0, 28, 246, 255, 0, 28, 246, 255, 0, 28, 246, 255, 0, 28, 246, 255, 0, 28, 246, 255, 0, 16, 142, 255, 11, 12, 16, 255, 149, 149, 149, 253, 215, 215, 215, 252, 215, 215, 215, 252, 127, 141, 232, 253, 194, 197, 219, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 186, 186, 186, 252, 1, 1, 1, 253, 0, 0, 0, 208, 88, 79, 79, 253, 255, 17, 17, 255, 255, 17, 17, 255, 255, 17, 17, 255, 255, 17, 17, 255, 147, 97, 97, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 145, 86, 86, 253, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 198, 17, 17, 255, 95, 95, 95, 253, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 16, 16, 16, 254, 1, 1, 1, 230, 148, 132, 132, 253, 255, 17, 17, 255, 255, 17, 17, 255, 255, 17, 17, 255, 255, 17, 17, 255, 222, 181, 181, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 216, 204, 204, 252, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 213, 13, 13, 255, 106, 106, 106, 254, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 33, 33, 33, 254, 0, 0, 0, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 1, 1, 1, 253, 117, 117, 117, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 118, 118, 118, 252, 24, 24, 24, 254, 0, 16, 145, 255, 0, 28, 246, 255, 0, 28, 246, 255, 0, 28, 246, 255, 0, 28, 246, 255, 0, 28, 246, 255, 0, 28, 246, 255, 0, 28, 246, 255, 0, 28, 246, 255, 0, 28, 246, 255, 0, 25, 219, 255, 0, 6, 55, 255, 34, 34, 34, 254, 112, 112, 112, 252, 119, 119, 119, 252, 119, 119, 119, 252, 113, 114, 127, 252, 13, 45, 250, 255, 83, 94, 162, 253, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 100, 100, 100, 252, 1, 1, 1, 249, 1, 1, 1, 253, 207, 207, 207, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 67, 67, 67, 254, 0, 12, 111, 255, 0, 28, 246, 255, 0, 28, 246, 255, 0, 28, 246, 255, 0, 28, 246, 255, 0, 28, 246, 255, 0, 28, 246, 255, 0, 28, 246, 255, 0, 28, 246, 255, 0, 28, 246, 255, 0, 26, 231, 255, 0, 9, 78, 255, 45, 45, 45, 254, 188, 188, 188, 252, 215, 215, 215, 252, 215, 215, 215, 252, 214, 214, 215, 252, 35, 63, 250, 254, 119, 134, 233, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 186, 186, 186, 252, 1, 1, 1, 253, 0, 0, 0, 208, 83, 83, 83, 253, 238, 29, 29, 254, 255, 17, 17, 255, 255, 17, 17, 255, 255, 17, 17, 255, 179, 73, 73, 253, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 155, 74, 74, 253, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 206, 28, 28, 254, 118, 118, 118, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 16, 16, 16, 254, 1, 1, 1, 230, 146, 145, 145, 253, 251, 34, 34, 255, 255, 17, 17, 255, 255, 17, 17, 255, 255, 17, 17, 255, 231, 133, 133, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 207, 167, 167, 252, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 232, 7, 7, 255, 182, 182, 182, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 33, 33, 33, 254, 0, 0, 0, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 1, 1, 1, 253, 117, 117, 117, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 103, 103, 103, 252, 5, 6, 13, 255, 0, 23, 201, 255, 0, 28, 246, 255, 0, 28, 246, 255, 0, 28, 246, 255, 0, 28, 246, 255, 0, 28, 246, 255, 0, 28, 246, 255, 0, 28, 246, 255, 0, 20, 173, 255, 1, 3, 19, 255, 66, 66, 66, 253, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 77, 89, 170, 253, 9, 42, 255, 255, 42, 65, 213, 254, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 100, 100, 100, 252, 1, 1, 1, 249, 1, 1, 1, 253, 207, 207, 207, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 204, 204, 204, 252, 27, 27, 28, 254, 0, 20, 173, 255, 0, 28, 246, 255, 0, 28, 246, 255, 0, 28, 246, 255, 0, 28, 246, 255, 0, 28, 246, 255, 0, 28, 246, 255, 0, 28, 246, 255, 0, 22, 195, 255, 0, 4, 32, 255, 93, 93, 93, 253, 213, 213, 213, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 166, 174, 225, 252, 9, 42, 255, 255, 42, 70, 248, 254, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 186, 186, 186, 252, 1, 1, 1, 253, 0, 0, 0, 208, 83, 83, 83, 253, 205, 55, 55, 254, 255, 17, 17, 255, 255, 17, 17, 255, 255, 17, 17, 255, 230, 35, 35, 254, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 164, 68, 68, 253, 255, 0, 0, 255, 255, 0, 0, 255, 250, 2, 2, 255, 223, 19, 19, 254, 213, 32, 32, 254, 204, 44, 44, 254, 142, 98, 98, 253, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 16, 16, 16, 254, 1, 1, 1, 230, 146, 146, 146, 253, 242, 83, 83, 254, 255, 17, 17, 255, 255, 17, 17, 255, 255, 17, 17, 255, 246, 59, 59, 254, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 201, 145, 145, 253, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 255, 254, 1, 1, 255, 232, 92, 92, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 33, 33, 33, 254, 0, 0, 0, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 1, 1, 1, 253, 117, 117, 117, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 80, 80, 80, 253, 0, 4, 37, 255, 0, 27, 235, 255, 0, 28, 246, 255, 0, 28, 246, 255, 0, 28, 246, 255, 0, 28, 246, 255, 0, 28, 242, 255, 0, 13, 113, 255, 14, 14, 14, 254, 93, 93, 93, 253, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 39, 63, 217, 254, 9, 42, 255, 255, 11, 43, 253, 255, 109, 112, 130, 252, 119, 119, 119, 252, 119, 119, 119, 252, 100, 100, 100, 252, 1, 1, 1, 249, 1, 1, 1, 253, 207, 207, 207, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 170, 170, 170, 253, 2, 4, 21, 255, 0, 25, 219, 255, 0, 28, 246, 255, 0, 28, 246, 255, 0, 28, 246, 255, 0, 28, 246, 255, 0, 28, 246, 255, 0, 16, 139, 255, 12, 13, 17, 255, 151, 151, 151, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 95, 114, 238, 253, 9, 42, 255, 255, 9, 42, 255, 255, 172, 179, 224, 252, 215, 215, 215, 252, 215, 215, 215, 252, 186, 186, 186, 252, 1, 1, 1, 253, 0, 0, 0, 208, 83, 83, 83, 253, 163, 86, 86, 253, 255, 17, 17, 255, 255, 17, 17, 255, 255, 17, 17, 255, 255, 17, 17, 255, 170, 80, 80, 253, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 175, 64, 64, 253, 255, 0, 0, 255, 214, 27, 27, 254, 128, 103, 103, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 16, 16, 16, 254, 1, 1, 1, 230, 146, 146, 146, 253, 229, 143, 143, 253, 255, 17, 17, 255, 255, 17, 17, 255, 255, 17, 17, 255, 255, 17, 17, 255, 228, 147, 147, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 204, 134, 134, 253, 255, 0, 0, 255, 252, 1, 1, 255, 223, 84, 84, 253, 211, 156, 156, 253, 221, 185, 185, 252, 218, 201, 201, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 33, 33, 33, 254, 0, 0, 0, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 1, 1, 1, 253, 117, 117, 117, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 47, 47, 47, 254, 0, 10, 89, 255, 0, 28, 246, 255, 0, 28, 246, 255, 0, 28, 246, 255, 0, 25, 217, 255, 0, 6, 54, 255, 35, 35, 35, 254, 112, 112, 112, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 15, 46, 247, 255, 9, 42, 255, 255, 9, 42, 255, 255, 87, 97, 158, 253, 119, 119, 119, 252, 119, 119, 119, 252, 100, 100, 100, 252, 1, 1, 1, 249, 1, 1, 1, 253, 207, 207, 207, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 119, 119, 120, 253, 0, 6, 57, 255, 0, 28, 242, 255, 0, 28, 246, 255, 0, 28, 246, 255, 0, 26, 230, 255, 0, 9, 76, 255, 47, 47, 47, 254, 189, 189, 189, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 50, 76, 247, 254, 9, 42, 255, 255, 9, 42, 255, 255, 126, 141, 232, 253, 215, 215, 215, 252, 215, 215, 215, 252, 186, 186, 186, 252, 1, 1, 1, 253, 0, 0, 0, 208, 83, 83, 83, 253, 121, 118, 118, 252, 236, 30, 30, 254, 255, 17, 17, 255, 255, 17, 17, 255, 255, 17, 17, 255, 249, 21, 21, 255, 152, 93, 93, 253, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 185, 59, 59, 253, 217, 24, 24, 254, 122, 114, 114, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 16, 16, 16, 254, 1, 1, 1, 230, 146, 146, 146, 253, 216, 211, 211, 252, 251, 38, 38, 254, 255, 17, 17, 255, 255, 17, 17, 255, 255, 17, 17, 255, 253, 29, 29, 255, 224, 171, 171, 253, 215, 215, 215, 252, 215, 215, 215, 252, 210, 124, 124, 253, 251, 1, 1, 255, 213, 131, 131, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 33, 33, 33, 254, 0, 0, 0, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 1, 1, 1, 253, 117, 117, 117, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 117, 117, 117, 252, 22, 22, 22, 254, 0, 17, 153, 255, 0, 28, 246, 255, 0, 19, 171, 255, 1, 3, 19, 255, 67, 67, 67, 253, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 12, 44, 251, 255, 9, 42, 255, 255, 9, 42, 255, 255, 85, 95, 161, 253, 119, 119, 119, 252, 119, 119, 119, 252, 100, 100, 100, 252, 1, 1, 1, 249, 1, 1, 1, 253, 207, 207, 207, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 62, 62, 62, 254, 0, 13, 118, 255, 0, 28, 246, 255, 0, 22, 193, 255, 0, 4, 31, 255, 95, 95, 95, 253, 214, 214, 214, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 43, 70, 248, 254, 9, 42, 255, 255, 9, 42, 255, 255, 123, 137, 233, 253, 215, 215, 215, 252, 215, 215, 215, 252, 186, 186, 186, 252, 1, 1, 1, 253, 0, 0, 0, 208, 83, 83, 83, 253, 119, 119, 119, 252, 167, 82, 82, 253, 255, 17, 17, 255, 255, 17, 17, 255, 255, 17, 17, 255, 255, 17, 17, 255, 251, 20, 20, 255, 175, 76, 76, 253, 120, 118, 118, 252, 119, 119, 119, 252, 180, 54, 54, 253, 130, 103, 103, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 16, 16, 16, 254, 1, 1, 1, 230, 146, 146, 146, 253, 215, 215, 215, 252, 231, 137, 137, 253, 255, 17, 17, 255, 255, 17, 17, 255, 255, 17, 17, 255, 255, 17, 17, 255, 254, 24, 24, 255, 230, 137, 137, 253, 215, 214, 214, 252, 217, 117, 117, 253, 215, 98, 98, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 33, 33, 33, 254, 0, 0, 0, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 1, 1, 1, 253, 117, 117, 117, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 101, 101, 101, 252, 4, 5, 14, 255, 0, 11, 96, 255, 15, 15, 15, 254, 94, 94, 94, 253, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 57, 75, 195, 253, 11, 44, 252, 255, 31, 57, 227, 254, 113, 115, 126, 252, 119, 119, 119, 252, 119, 119, 119, 252, 100, 100, 100, 252, 1, 1, 1, 249, 1, 1, 1, 253, 207, 207, 207, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 200, 200, 200, 252, 22, 22, 24, 254, 0, 11, 100, 255, 13, 14, 18, 254, 154, 154, 154, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 126, 140, 232, 253, 16, 48, 253, 255, 36, 64, 250, 254, 189, 193, 220, 252, 215, 215, 215, 252, 215, 215, 215, 252, 186, 186, 186, 252, 1, 1, 1, 253, 0, 0, 0, 208, 83, 83, 83, 253, 119, 119, 119, 252, 119, 119, 119, 252, 204, 54, 54, 254, 255, 17, 17, 255, 255, 17, 17, 255, 255, 17, 17, 255, 255, 17, 17, 255, 255, 17, 17, 255, 229, 36, 36, 254, 144, 100, 100, 253, 128, 99, 99, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 16, 16, 16, 254, 1, 1, 1, 230, 146, 146, 146, 253, 215, 215, 215, 252, 215, 215, 215, 252, 241, 83, 83, 254, 255, 17, 17, 255, 255, 17, 17, 255, 255, 17, 17, 255, 255, 17, 17, 255, 255, 17, 17, 255, 247, 58, 58, 254, 217, 106, 106, 253, 214, 212, 212, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 33, 33, 33, 254, 0, 0, 0, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 1, 1, 1, 253, 116, 116, 116, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 87, 87, 87, 253, 49, 49, 49, 253, 113, 113, 113, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 118, 118, 121, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 100, 100, 100, 252, 1, 1, 1, 249, 1, 1, 1, 253, 207, 207, 207, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 169, 169, 169, 253, 86, 86, 86, 253, 190, 190, 190, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 212, 213, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 185, 185, 185, 252, 1, 1, 1, 253, 0, 0, 0, 190, 72, 72, 72, 253, 119, 119, 119, 252, 119, 119, 119, 252, 125, 115, 115, 252, 216, 45, 45, 254, 255, 17, 17, 255, 255, 17, 17, 255, 255, 17, 17, 255, 255, 17, 17, 255, 255, 17, 17, 255, 240, 28, 28, 255, 130, 111, 111, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 118, 118, 118, 252, 7, 7, 7, 253, 1, 1, 1, 210, 127, 127, 127, 253, 215, 215, 215, 252, 215, 215, 215, 252, 217, 205, 205, 252, 244, 67, 67, 254, 255, 17, 17, 255, 255, 17, 17, 255, 255, 17, 17, 255, 255, 17, 17, 255, 255, 17, 17, 255, 250, 41, 41, 254, 218, 202, 202, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 214, 214, 214, 252, 15, 15, 15, 254, 0, 0, 0, 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 1, 1, 247, 102, 102, 102, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 86, 86, 86, 253, 0, 0, 0, 222, 1, 1, 1, 246, 179, 179, 179, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 159, 159, 159, 253, 1, 1, 1, 226, 0, 0, 0, 141, 45, 45, 45, 253, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 121, 117, 117, 252, 201, 57, 57, 254, 255, 17, 17, 255, 255, 17, 17, 255, 255, 17, 17, 255, 255, 17, 17, 255, 255, 17, 17, 255, 152, 94, 94, 253, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 97, 97, 97, 252, 0, 0, 0, 246, 0, 0, 0, 140, 78, 78, 78, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 216, 210, 210, 252, 240, 89, 89, 254, 255, 17, 17, 255, 255, 17, 17, 255, 255, 17, 17, 255, 255, 17, 17, 255, 255, 17, 17, 255, 223, 173, 173, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 180, 180, 180, 252, 1, 1, 1, 248, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 202, 71, 71, 71, 253, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 55, 55, 55, 253, 0, 0, 0, 170, 1, 1, 1, 198, 124, 124, 124, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 103, 103, 103, 253, 0, 0, 0, 176, 0, 0, 0, 47, 2, 2, 2, 248, 94, 94, 94, 253, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 158, 89, 89, 253, 235, 32, 32, 254, 255, 17, 17, 255, 255, 17, 17, 255, 242, 26, 26, 255, 130, 110, 110, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 118, 118, 118, 252, 30, 30, 30, 253, 0, 0, 0, 153, 0, 0, 0, 44, 3, 3, 3, 247, 168, 168, 168, 253, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 227, 152, 152, 253, 249, 43, 43, 254, 255, 17, 17, 255, 255, 17, 17, 255, 251, 38, 38, 255, 217, 203, 203, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 214, 214, 214, 252, 59, 59, 59, 254, 0, 0, 0, 158, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 9, 9, 9, 253, 105, 105, 105, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 95, 95, 95, 253, 3, 3, 3, 250, 0, 0, 0, 55, 0, 0, 0, 80, 14, 14, 14, 254, 187, 187, 187, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 174, 174, 174, 253, 7, 7, 7, 251, 0, 0, 0, 58, 0, 0, 0, 0, 0, 0, 0, 119, 7, 7, 7, 253, 72, 72, 72, 253, 111, 111, 111, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 122, 117, 117, 252, 163, 85, 85, 253, 181, 72, 72, 253, 132, 109, 109, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 119, 119, 119, 252, 117, 117, 117, 252, 95, 95, 95, 252, 30, 30, 30, 253, 0, 0, 0, 216, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 115, 13, 13, 13, 254, 128, 128, 128, 253, 200, 200, 200, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 216, 209, 209, 252, 228, 149, 149, 253, 233, 124, 124, 253, 218, 199, 199, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 215, 215, 215, 252, 213, 213, 213, 252, 173, 173, 173, 252, 57, 57, 57, 254, 1, 1, 1, 219, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 8, 8, 8, 253, 67, 67, 67, 253, 97, 97, 97, 252, 107, 107, 107, 252, 107, 107, 107, 252, 107, 107, 107, 252, 107, 107, 107, 252, 107, 107, 107, 252, 107, 107, 107, 252, 107, 107, 107, 252, 107, 107, 107, 252, 107, 107, 107, 252, 107, 107, 107, 252, 107, 107, 107, 252, 107, 107, 107, 252, 107, 107, 107, 252, 107, 107, 107, 252, 107, 107, 107, 252, 107, 107, 107, 252, 107, 107, 107, 252, 107, 107, 107, 252, 107, 107, 107, 252, 107, 107, 107, 252, 107, 107, 107, 252, 107, 107, 107, 252, 94, 94, 94, 252, 60, 60, 60, 253, 4, 4, 4, 251, 0, 0, 0, 117, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 144, 14, 14, 14, 254, 120, 120, 120, 253, 174, 174, 174, 252, 194, 194, 194, 252, 194, 194, 194, 252, 194, 194, 194, 252, 194, 194, 194, 252, 194, 194, 194, 252, 194, 194, 194, 252, 194, 194, 194, 252, 194, 194, 194, 252, 194, 194, 194, 252, 194, 194, 194, 252, 194, 194, 194, 252, 194, 194, 194, 252, 194, 194, 194, 252, 194, 194, 194, 252, 194, 194, 194, 252, 194, 194, 194, 252, 194, 194, 194, 252, 194, 194, 194, 252, 194, 194, 194, 252, 194, 194, 194, 252, 194, 194, 194, 252, 194, 194, 194, 252, 170, 170, 170, 252, 111, 111, 111, 253, 9, 9, 9, 252, 0, 0, 0, 121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 78, 0, 0, 0, 222, 1, 1, 1, 253, 11, 11, 11, 253, 12, 12, 12, 254, 12, 12, 12, 254, 12, 12, 12, 254, 12, 12, 12, 254, 12, 12, 12, 254, 12, 12, 12, 254, 12, 12, 12, 254, 12, 12, 12, 254, 12, 12, 12, 254, 12, 12, 12, 254, 12, 12, 12, 254, 12, 12, 12, 254, 12, 12, 12, 254, 12, 12, 12, 254, 12, 12, 12, 254, 12, 12, 12, 254, 12, 12, 12, 254, 12, 12, 12, 254, 12, 12, 12, 254, 12, 12, 12, 254, 12, 12, 12, 254, 5, 5, 5, 253, 0, 0, 0, 245, 0, 0, 0, 153, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 1, 1, 1, 220, 1, 1, 1, 253, 21, 21, 21, 254, 23, 23, 23, 254, 23, 23, 23, 254, 23, 23, 23, 254, 23, 23, 23, 254, 23, 23, 23, 254, 23, 23, 23, 254, 23, 23, 23, 254, 23, 23, 23, 254, 23, 23, 23, 254, 23, 23, 23, 254, 23, 23, 23, 254, 23, 23, 23, 254, 23, 23, 23, 254, 23, 23, 23, 254, 23, 23, 23, 254, 23, 23, 23, 254, 23, 23, 23, 254, 23, 23, 23, 254, 23, 23, 23, 254, 23, 23, 23, 254, 23, 23, 23, 254, 10, 10, 10, 254, 1, 1, 1, 245, 0, 0, 0, 156, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 195, 0, 0, 0, 244, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 0, 0, 0, 240, 0, 0, 0, 186, 0, 0, 0, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 78, 1, 1, 1, 195, 1, 1, 1, 243, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 253, 1, 1, 1, 241, 0, 0, 0, 188, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0 ), +"format": "RGBA8", +"height": 256, +"mipmaps": false, +"width": 256 +} + +[sub_resource type="ImageTexture" id=3] +image = SubResource( 2 ) +size = Vector2( 256, 256 ) + +[sub_resource type="GDScript" id=1] +script/source = "tool +extends ProxyTexture + +func _init(): + if Directory.new().file_exists(\"res://addons/mat_maker_gd/icons/icons.svg\"): + var t : ImageTexture = ImageTexture.new() + t.load(\"res://addons/mat_maker_gd/icons/icons.svg\") + base = t +" + +[resource] +flags = 7 +base = SubResource( 3 ) +script = SubResource( 1 ) diff --git a/game/addons/mat_maker_gd/icons/link.tres b/game/addons/mat_maker_gd/icons/link.tres new file mode 100644 index 0000000..0e95109 --- /dev/null +++ b/game/addons/mat_maker_gd/icons/link.tres @@ -0,0 +1,8 @@ +[gd_resource type="AtlasTexture" load_steps=2 format=2] + +[ext_resource path="res://addons/mat_maker_gd/icons/icons.tres" type="Texture" id=1] + +[resource] +flags = 7 +atlas = ExtResource( 1 ) +region = Rect2( 16, 0, 16, 15 ) diff --git a/game/addons/mat_maker_gd/icons/minimize.tres b/game/addons/mat_maker_gd/icons/minimize.tres new file mode 100644 index 0000000..7d367b4 --- /dev/null +++ b/game/addons/mat_maker_gd/icons/minimize.tres @@ -0,0 +1,8 @@ +[gd_resource type="AtlasTexture" load_steps=2 format=2] + +[ext_resource path="res://addons/mat_maker_gd/icons/icons.tres" type="Texture" id=1] + +[resource] +flags = 7 +atlas = ExtResource( 1 ) +region = Rect2( 48, 96, 16, 16 ) diff --git a/game/addons/mat_maker_gd/icons/output_preview.tres b/game/addons/mat_maker_gd/icons/output_preview.tres new file mode 100644 index 0000000..c84be54 --- /dev/null +++ b/game/addons/mat_maker_gd/icons/output_preview.tres @@ -0,0 +1,8 @@ +[gd_resource type="AtlasTexture" load_steps=2 format=2] + +[ext_resource path="res://addons/mat_maker_gd/icons/icons.tres" type="Texture" id=1] + +[resource] +flags = 7 +atlas = ExtResource( 1 ) +region = Rect2( 0, 80, 16, 16 ) diff --git a/game/addons/mat_maker_gd/icons/port_group_0.tres b/game/addons/mat_maker_gd/icons/port_group_0.tres new file mode 100644 index 0000000..ae29b24 --- /dev/null +++ b/game/addons/mat_maker_gd/icons/port_group_0.tres @@ -0,0 +1,8 @@ +[gd_resource type="AtlasTexture" load_steps=2 format=2] + +[ext_resource path="res://addons/mat_maker_gd/icons/icons.tres" type="Texture" id=1] + +[resource] +flags = 7 +atlas = ExtResource( 1 ) +region = Rect2( 32, 64, 16, 16 ) diff --git a/game/addons/mat_maker_gd/icons/port_group_1.tres b/game/addons/mat_maker_gd/icons/port_group_1.tres new file mode 100644 index 0000000..56412cc --- /dev/null +++ b/game/addons/mat_maker_gd/icons/port_group_1.tres @@ -0,0 +1,8 @@ +[gd_resource type="AtlasTexture" load_steps=2 format=2] + +[ext_resource path="res://addons/mat_maker_gd/icons/icons.tres" type="Texture" id=1] + +[resource] +flags = 7 +atlas = ExtResource( 1 ) +region = Rect2( 32, 80, 16, 16 ) diff --git a/game/addons/mat_maker_gd/icons/port_group_2.tres b/game/addons/mat_maker_gd/icons/port_group_2.tres new file mode 100644 index 0000000..dd08018 --- /dev/null +++ b/game/addons/mat_maker_gd/icons/port_group_2.tres @@ -0,0 +1,8 @@ +[gd_resource type="AtlasTexture" load_steps=2 format=2] + +[ext_resource path="res://addons/mat_maker_gd/icons/icons.tres" type="Texture" id=1] + +[resource] +flags = 4 +atlas = ExtResource( 1 ) +region = Rect2( 32, 96, 16, 16 ) diff --git a/game/addons/mat_maker_gd/icons/port_group_3.tres b/game/addons/mat_maker_gd/icons/port_group_3.tres new file mode 100644 index 0000000..2943001 --- /dev/null +++ b/game/addons/mat_maker_gd/icons/port_group_3.tres @@ -0,0 +1,8 @@ +[gd_resource type="AtlasTexture" load_steps=2 format=2] + +[ext_resource path="res://addons/mat_maker_gd/icons/icons.tres" type="Texture" id=1] + +[resource] +flags = 7 +atlas = ExtResource( 1 ) +region = Rect2( 32, 112, 16, 16 ) diff --git a/game/addons/mat_maker_gd/icons/randomness_locked.tres b/game/addons/mat_maker_gd/icons/randomness_locked.tres new file mode 100644 index 0000000..48fcc12 --- /dev/null +++ b/game/addons/mat_maker_gd/icons/randomness_locked.tres @@ -0,0 +1,8 @@ +[gd_resource type="AtlasTexture" load_steps=2 format=2] + +[ext_resource path="res://addons/mat_maker_gd/icons/icons.tres" type="Texture" id=1] + +[resource] +flags = 4 +atlas = ExtResource( 1 ) +region = Rect2( 80, 32, 16, 16 ) diff --git a/game/addons/mat_maker_gd/icons/randomness_unlocked.tres b/game/addons/mat_maker_gd/icons/randomness_unlocked.tres new file mode 100644 index 0000000..9ec871f --- /dev/null +++ b/game/addons/mat_maker_gd/icons/randomness_unlocked.tres @@ -0,0 +1,8 @@ +[gd_resource type="AtlasTexture" load_steps=2 format=2] + +[ext_resource path="res://addons/mat_maker_gd/icons/icons.tres" type="Texture" id=1] + +[resource] +flags = 7 +atlas = ExtResource( 1 ) +region = Rect2( 64, 32, 16, 16 ) diff --git a/game/addons/mat_maker_gd/icons/remove.tres b/game/addons/mat_maker_gd/icons/remove.tres new file mode 100644 index 0000000..b1f1c2f --- /dev/null +++ b/game/addons/mat_maker_gd/icons/remove.tres @@ -0,0 +1,8 @@ +[gd_resource type="AtlasTexture" load_steps=2 format=2] + +[ext_resource path="res://addons/mat_maker_gd/icons/icons.tres" type="Texture" id=1] + +[resource] +flags = 7 +atlas = ExtResource( 1 ) +region = Rect2( 32, 0, 16, 16 ) diff --git a/game/addons/mat_maker_gd/icons/up.tres b/game/addons/mat_maker_gd/icons/up.tres new file mode 100644 index 0000000..ab48648 --- /dev/null +++ b/game/addons/mat_maker_gd/icons/up.tres @@ -0,0 +1,8 @@ +[gd_resource type="AtlasTexture" load_steps=2 format=2] + +[ext_resource path="res://addons/mat_maker_gd/icons/icons.tres" type="Texture" id=1] + +[resource] +flags = 4 +atlas = ExtResource( 1 ) +region = Rect2( 16, 48, 16, 16 ) diff --git a/game/addons/mat_maker_gd/new_resource.tres b/game/addons/mat_maker_gd/new_resource.tres new file mode 100644 index 0000000..80dc226 --- /dev/null +++ b/game/addons/mat_maker_gd/new_resource.tres @@ -0,0 +1,509 @@ +[gd_resource type="MMMaterial" load_steps=91 format=2] + +[ext_resource path="res://addons/mat_maker_gd/nodes/filter/colorize.gd" type="Script" id=1] +[ext_resource path="res://addons/mat_maker_gd/nodes/noise/voronoi.gd" type="Script" id=3] +[ext_resource path="res://addons/mat_maker_gd/nodes/filter/invert.gd" type="Script" id=4] +[ext_resource path="res://addons/mat_maker_gd/nodes/filter/combine.gd" type="Script" id=6] +[ext_resource path="res://addons/mat_maker_gd/nodes/transform/scale.gd" type="Script" id=7] +[ext_resource path="res://addons/mat_maker_gd/nodes/transform/repeat.gd" type="Script" id=8] +[ext_resource path="res://addons/mat_maker_gd/nodes/transform/shear.gd" type="Script" id=9] +[ext_resource path="res://addons/mat_maker_gd/nodes/transform/mirror.gd" type="Script" id=10] +[ext_resource path="res://addons/mat_maker_gd/nodes/transform/transform.gd" type="Script" id=11] +[ext_resource path="res://addons/mat_maker_gd/nodes/transform/circle_map.gd" type="Script" id=12] +[ext_resource path="res://addons/mat_maker_gd/nodes/transform/rotate.gd" type="Script" id=13] +[ext_resource path="res://addons/mat_maker_gd/nodes/filter/tonality.gd" type="Script" id=14] +[ext_resource path="res://addons/mat_maker_gd/nodes/filter/fill_to_position.gd" type="Script" id=15] +[ext_resource path="res://addons/mat_maker_gd/nodes/simple/shape.gd" type="Script" id=16] +[ext_resource path="res://addons/mat_maker_gd/nodes/filter/fill_to_uv.gd" type="Script" id=17] +[ext_resource path="res://addons/mat_maker_gd/nodes/filter/fill_to_random_grey.gd" type="Script" id=18] +[ext_resource path="res://addons/mat_maker_gd/nodes/filter/math.gd" type="Script" id=19] +[ext_resource path="res://addons/mat_maker_gd/nodes/transform/color_tiler.gd" type="Script" id=20] + +[sub_resource type="MMNodeUniversalProperty" id=5] +default_type = 5 +output_slot_type = 0 + +[sub_resource type="MMNodeUniversalProperty" id=6] +default_type = 5 +output_slot_type = 0 + +[sub_resource type="MMNodeUniversalProperty" id=7] +default_type = 5 +output_slot_type = 0 + +[sub_resource type="MMNodeUniversalProperty" id=2] +default_type = 5 +output_slot_type = 0 + +[sub_resource type="MMNode" id=8] +graph_position = Vector2( -160, 40 ) +output_properties = [ null, null, null, null, SubResource( 7 ), SubResource( 5 ), SubResource( 2 ), SubResource( 6 ) ] +script = ExtResource( 3 ) +out_nodes = SubResource( 7 ) +out_borders = SubResource( 5 ) +out_random_color = SubResource( 2 ) +out_fill = SubResource( 6 ) +scale = Vector2( 13.6, 18.9 ) +stretch = Vector2( 2.13, 2.13 ) +intensity = 1.07 +randomness = 0.89 + +[sub_resource type="MMNodeUniversalProperty" id=9] +default_type = 5 +output_slot_type = 0 + +[sub_resource type="MMNodeUniversalProperty" id=10] +default_type = 4 +input_slot_type = 6 +slot_name = ">>> Input1 " + +[sub_resource type="MMNode" id=11] +graph_position = Vector2( 380, 80 ) +input_properties = [ null, SubResource( 10 ) ] +output_properties = [ null, SubResource( 9 ) ] +script = ExtResource( 4 ) +image = SubResource( 9 ) +input = SubResource( 10 ) + +[sub_resource type="MMNodeUniversalProperty" id=12] +default_type = 5 +output_slot_type = 0 + +[sub_resource type="MMNodeUniversalProperty" id=13] +default_type = 1 +default_float = 1.0 +input_slot_type = 6 +slot_name = ">>> A " + +[sub_resource type="MMNodeUniversalProperty" id=14] +default_type = 1 +input_slot_type = 6 +slot_name = ">>> B " +input_property = SubResource( 7 ) + +[sub_resource type="MMNodeUniversalProperty" id=15] +default_type = 1 +input_slot_type = 6 +slot_name = ">>> G " +input_property = SubResource( 2 ) + +[sub_resource type="MMNodeUniversalProperty" id=16] +default_type = 1 +input_slot_type = 6 +slot_name = ">>> R " +input_property = SubResource( 5 ) + +[sub_resource type="MMNode" id=17] +graph_position = Vector2( 380, 380 ) +input_properties = [ null, null, null, null, SubResource( 16 ), SubResource( 15 ), SubResource( 14 ), SubResource( 13 ) ] +output_properties = [ null, SubResource( 12 ) ] +script = ExtResource( 6 ) +image = SubResource( 12 ) +input_r = SubResource( 16 ) +input_g = SubResource( 15 ) +input_b = SubResource( 14 ) +input_a = SubResource( 13 ) + +[sub_resource type="MMNodeUniversalProperty" id=18] +default_type = 5 +output_slot_type = 0 + +[sub_resource type="MMNodeUniversalProperty" id=19] +default_type = 4 +input_slot_type = 6 +slot_name = ">>> Input1 " +input_property = SubResource( 12 ) + +[sub_resource type="MMNode" id=20] +graph_position = Vector2( 1080, 180 ) +input_properties = [ null, SubResource( 19 ) ] +output_properties = [ null, SubResource( 18 ) ] +script = ExtResource( 7 ) +image = SubResource( 18 ) +input = SubResource( 19 ) +center = Vector2( 1, 1 ) +scale = Vector2( 1.3, 1.3 ) + +[sub_resource type="MMNodeUniversalProperty" id=21] +default_type = 4 +get_value_from_owner = true +input_slot_type = 6 +output_slot_type = 6 +slot_name = ">>> Apply >>>" +input_property = SubResource( 12 ) + +[sub_resource type="MMNode" id=22] +graph_position = Vector2( 560, 300 ) +input_properties = [ null, SubResource( 21 ) ] +output_properties = [ null, SubResource( 21 ) ] +script = ExtResource( 8 ) +input = SubResource( 21 ) + +[sub_resource type="MMNodeUniversalProperty" id=23] +default_type = 5 +output_slot_type = 0 + +[sub_resource type="MMNodeUniversalProperty" id=24] +default_type = 4 +input_slot_type = 6 +slot_name = ">>> Input " +input_property = SubResource( 21 ) + +[sub_resource type="MMNode" id=25] +graph_position = Vector2( 860, 200 ) +input_properties = [ null, SubResource( 24 ) ] +output_properties = [ null, SubResource( 23 ) ] +script = ExtResource( 9 ) +image = SubResource( 23 ) +input = SubResource( 24 ) +direction = 0 +amount = 1.06 +center = 0.0 + +[sub_resource type="MMNodeUniversalProperty" id=26] +default_type = 5 +output_slot_type = 0 + +[sub_resource type="MMNodeUniversalProperty" id=27] +default_type = 4 +input_slot_type = 6 +slot_name = ">>> Input " +input_property = SubResource( 21 ) + +[sub_resource type="MMNode" id=28] +graph_position = Vector2( 620, 460 ) +input_properties = [ null, SubResource( 27 ) ] +output_properties = [ null, SubResource( 26 ) ] +script = ExtResource( 10 ) +image = SubResource( 26 ) +input = SubResource( 27 ) +direction = 0 +offset = 0.32 + +[sub_resource type="MMNodeUniversalProperty" id=32] +default_type = 5 +output_slot_type = 0 + +[sub_resource type="MMNodeUniversalProperty" id=33] +default_type = 4 +input_slot_type = 6 +slot_name = ">>> Input " +input_property = SubResource( 21 ) + +[sub_resource type="MMNode" id=34] +graph_position = Vector2( 820, 580 ) +input_properties = [ null, SubResource( 33 ) ] +output_properties = [ null, SubResource( 32 ) ] +script = ExtResource( 12 ) +image = SubResource( 32 ) +input = SubResource( 33 ) +radius = 1.0 +repeat = 4 + +[sub_resource type="MMNodeUniversalProperty" id=35] +default_type = 5 +output_slot_type = 0 + +[sub_resource type="MMNodeUniversalProperty" id=36] +default_type = 4 +input_slot_type = 6 +slot_name = ">>> Input1 " + +[sub_resource type="MMNode" id=37] +graph_position = Vector2( 1040, 560 ) +input_properties = [ null, SubResource( 36 ) ] +output_properties = [ null, SubResource( 35 ) ] +script = ExtResource( 13 ) +image = SubResource( 35 ) +input = SubResource( 36 ) +center = Vector2( 0.13, 0 ) +rotate = 150.0 + +[sub_resource type="MMNodeUniversalProperty" id=38] +default_type = 5 +output_slot_type = 0 + +[sub_resource type="MMNodeUniversalProperty" id=39] +default_type = 4 +input_slot_type = 6 +slot_name = ">>> Input " +input_property = SubResource( 21 ) + +[sub_resource type="MMNodeUniversalProperty" id=43] +default_type = 1 +default_float = 4.1 +input_slot_type = 6 +slot_name = "Translate X" + +[sub_resource type="MMNodeUniversalProperty" id=44] +default_type = 1 +default_float = 2.2 +input_slot_type = 6 +slot_name = "Translate Y" + +[sub_resource type="MMNodeUniversalProperty" id=40] +default_type = 1 +default_float = 14.5 +input_slot_type = 6 +slot_name = "Rotate" +input_property = SubResource( 32 ) + +[sub_resource type="MMNodeUniversalProperty" id=41] +default_type = 1 +default_float = 1.6 +input_slot_type = 6 +slot_name = "Scale X" + +[sub_resource type="MMNodeUniversalProperty" id=42] +default_type = 1 +default_float = 1.1 +input_slot_type = 6 +slot_name = "Scale Y" + +[sub_resource type="MMNode" id=45] +graph_position = Vector2( 1280, 560 ) +input_properties = [ null, null, null, null, null, null, SubResource( 39 ), SubResource( 43 ), SubResource( 44 ), SubResource( 40 ), SubResource( 41 ), SubResource( 42 ) ] +output_properties = [ null, SubResource( 38 ) ] +script = ExtResource( 11 ) +image = SubResource( 38 ) +input = SubResource( 39 ) +translate_x = SubResource( 43 ) +translate_y = SubResource( 44 ) +rotate = SubResource( 40 ) +scale_x = SubResource( 41 ) +scale_y = SubResource( 42 ) +mode = 1 + +[sub_resource type="MMNodeUniversalProperty" id=46] +default_type = 5 +output_slot_type = 0 + +[sub_resource type="MMNodeUniversalProperty" id=47] +default_type = 1 +input_slot_type = 6 +slot_name = ">>> Input " +input_property = SubResource( 23 ) + +[sub_resource type="MMNode" id=48] +graph_position = Vector2( 620, 0 ) +input_properties = [ null, SubResource( 47 ) ] +output_properties = [ null, SubResource( 46 ) ] +script = ExtResource( 14 ) +points = [ 0.0, 0.0, 0.0, 1.0, 0.284455, 0.780757, 0.0, 0.0, 0.735577, 0.159306, 0.0, 0.0, 1.0, 1.0, 1.0, 0.0 ] +image = SubResource( 46 ) +input = SubResource( 47 ) + +[sub_resource type="MMNodeUniversalProperty" id=49] +default_type = 5 +output_slot_type = 0 + +[sub_resource type="MMNodeUniversalProperty" id=50] +default_type = 4 +input_slot_type = 6 +slot_name = ">>> Input " + +[sub_resource type="MMNode" id=51] +graph_position = Vector2( 120, 440 ) +input_properties = [ null, SubResource( 50 ) ] +output_properties = [ null, SubResource( 49 ) ] +script = ExtResource( 15 ) +image = SubResource( 49 ) +input = SubResource( 50 ) +axis = 2 + +[sub_resource type="MMNodeUniversalProperty" id=52] +default_type = 1 +default_float = 0.1 +input_slot_type = 6 +slot_name = "edge" +value_step = 0.05 + +[sub_resource type="MMNodeUniversalProperty" id=53] +default_type = 5 +output_slot_type = 0 + +[sub_resource type="MMNodeUniversalProperty" id=54] +default_type = 1 +default_float = 1.3 +input_slot_type = 6 +slot_name = "radius" +value_step = 0.05 +input_property = SubResource( 2 ) + +[sub_resource type="MMNode" id=55] +graph_position = Vector2( -440, 200 ) +input_properties = [ null, null, SubResource( 54 ), SubResource( 52 ) ] +output_properties = [ null, SubResource( 53 ) ] +script = ExtResource( 16 ) +image = SubResource( 53 ) +shape_type = 2 +sides = 7 +radius = SubResource( 54 ) +edge = SubResource( 52 ) + +[sub_resource type="MMNodeUniversalProperty" id=56] +default_type = 5 +output_slot_type = 0 + +[sub_resource type="MMNodeUniversalProperty" id=59] +default_type = 5 +output_slot_type = 0 + +[sub_resource type="MMNodeUniversalProperty" id=57] +default_type = 4 +input_slot_type = 6 +slot_name = ">>> Input " +input_property = SubResource( 59 ) + +[sub_resource type="MMNode" id=58] +graph_position = Vector2( 580, 800 ) +input_properties = [ null, SubResource( 57 ) ] +output_properties = [ null, SubResource( 56 ) ] +script = ExtResource( 17 ) +image = SubResource( 56 ) +input = SubResource( 57 ) +mode = 0 + +[sub_resource type="MMNodeUniversalProperty" id=60] +default_type = 4 +input_slot_type = 6 +slot_name = ">>> Input " +input_property = SubResource( 12 ) + +[sub_resource type="MMNode" id=61] +graph_position = Vector2( 320, 700 ) +input_properties = [ null, SubResource( 60 ) ] +output_properties = [ null, SubResource( 59 ) ] +script = ExtResource( 18 ) +image = SubResource( 59 ) +input = SubResource( 60 ) +edge_color = 0.9 + +[sub_resource type="MMNodeUniversalProperty" id=63] +default_type = 1 +input_slot_type = 6 +slot_name = ">>> A " +value_step = 0.01 +value_range = Vector2( 0, 1 ) +input_property = SubResource( 5 ) + +[sub_resource type="MMNodeUniversalProperty" id=64] +default_type = 1 +input_slot_type = 6 +slot_name = ">>> B " +value_step = 0.01 +value_range = Vector2( 0, 1 ) +input_property = SubResource( 53 ) + +[sub_resource type="MMNodeUniversalProperty" id=65] +default_type = 5 +output_slot_type = 0 + +[sub_resource type="MMNodeUniversalProperty" id=62] +default_type = 1 +get_value_from_owner = true +output_slot_type = 6 +slot_name = " Output >>>" + +[sub_resource type="MMNode" id=66] +graph_position = Vector2( -720, 280 ) +input_properties = [ null, null, SubResource( 63 ), SubResource( 64 ) ] +output_properties = [ null, null, SubResource( 62 ), SubResource( 65 ) ] +script = ExtResource( 19 ) +image = SubResource( 65 ) +a = SubResource( 63 ) +b = SubResource( 64 ) +output = SubResource( 62 ) +operation = 3 +clamp_result = true + +[sub_resource type="MMNodeUniversalProperty" id=67] +default_type = 1 +default_float = 1.0 +input_slot_type = 6 +slot_name = ">>> Mask " + +[sub_resource type="MMNodeUniversalProperty" id=68] +default_type = 4 +input_slot_type = 6 +slot_name = ">>> Input " + +[sub_resource type="MMNodeUniversalProperty" id=69] +default_type = 5 +output_slot_type = 0 + +[sub_resource type="MMNodeUniversalProperty" id=70] +default_type = 5 +output_slot_type = 0 + +[sub_resource type="MMNode" id=71] +graph_position = Vector2( -1060, 280 ) +input_properties = [ null, null, SubResource( 68 ), SubResource( 67 ) ] +output_properties = [ null, null, SubResource( 70 ), SubResource( 69 ) ] +script = ExtResource( 20 ) +input = SubResource( 68 ) +in_mask = SubResource( 67 ) +output = SubResource( 70 ) +instance_map = SubResource( 69 ) +tile = Vector2( 4, 4 ) +overlap = 1.0 +select_inputs = 0 +scale = Vector2( 0.5, 0.5 ) +fixed_offset = 0.0 +rnd_offset = 0.28 +rnd_rotate = 100.0 +rnd_scale = 0.2 +rnd_opacity = 0.0 +variations = false + +[sub_resource type="MMNodeUniversalProperty" id=74] +default_type = 1 +default_float = 0.65 +input_slot_type = 6 +slot_name = "edge" +value_step = 0.05 + +[sub_resource type="MMNodeUniversalProperty" id=72] +output_slot_type = 0 + +[sub_resource type="MMNodeUniversalProperty" id=75] +default_type = 1 +default_float = 0.3 +input_slot_type = 6 +slot_name = "radius" +value_step = 0.05 + +[sub_resource type="MMNode" id=73] +graph_position = Vector2( -340, -420 ) +input_properties = [ null, null, SubResource( 75 ), SubResource( 74 ) ] +output_properties = [ null, SubResource( 72 ) ] +script = ExtResource( 16 ) +image = SubResource( 72 ) +shape_type = 1 +sides = 12 +radius = SubResource( 75 ) +edge = SubResource( 74 ) + +[sub_resource type="MMNodeUniversalProperty" id=76] +default_type = 5 +output_slot_type = 0 + +[sub_resource type="MMNodeUniversalProperty" id=77] +default_type = 1 +default_float = 1.0 +input_slot_type = 6 +slot_name = ">>> Input1 " +input_property = SubResource( 72 ) + +[sub_resource type="MMNode" id=78] +graph_position = Vector2( -80, -520 ) +input_properties = [ null, SubResource( 77 ) ] +output_properties = [ null, SubResource( 76 ) ] +script = ExtResource( 1 ) +interpolation_type = 2 +points = PoolRealArray( 0, 0, 0, 0, 1, 0.458472, 0.921875, 0.860657, 0.860657, 1, 1, 1, 0, 0, 1 ) +image = SubResource( 76 ) +input = SubResource( 77 ) + +[resource] +nodes = [ SubResource( 8 ), SubResource( 11 ), SubResource( 17 ), SubResource( 20 ), SubResource( 22 ), SubResource( 25 ), SubResource( 28 ), SubResource( 34 ), SubResource( 37 ), SubResource( 45 ), SubResource( 48 ), SubResource( 51 ), SubResource( 55 ), SubResource( 58 ), SubResource( 61 ), SubResource( 66 ), SubResource( 71 ), SubResource( 73 ), SubResource( 78 ) ] diff --git a/game/addons/mat_maker_gd/nodes/bases/curve_base.gd b/game/addons/mat_maker_gd/nodes/bases/curve_base.gd new file mode 100644 index 0000000..76daea5 --- /dev/null +++ b/game/addons/mat_maker_gd/nodes/bases/curve_base.gd @@ -0,0 +1,118 @@ +tool +extends MMNode + +class Point: + var p : Vector2 + var ls : float + var rs : float + func _init(x : float, y : float, nls : float, nrs : float) -> void: + p = Vector2(x, y) + ls = nls + rs = nrs + +export(PoolRealArray) var points + +func init_points_01(): + if points.size() == 0: + points = [ 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 0.0 ] + +func init_points_11(): + if points.size() == 0: + points = [ 0.0, 1.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0 ] + +func to_string() -> String: + var rv = PoolStringArray() + for p in points: + rv.append("("+str(p.x)+","+str(p.y)+","+str(p.ls)+","+str(p.rs)+")") + + return rv.join(",") + +func clear() -> void: + points.clear() + curve_changed() + +func add_point(x : float, y : float, ls : float = INF, rs : float = INF) -> void: + var indx : int = points.size() / 4 + + for i in indx: + var ii : int = i * 4 + if x < points[ii]: + if ls == INF: + ls == 0 + if rs == INF: + rs == 0 + + points.insert(ii, x) + points.insert(ii + 1, y) + points.insert(ii + 2, ls) + points.insert(ii + 3, rs) + + curve_changed() + return + + points.append(x) + points.append(y) + points.append(ls) + points.append(rs) + + curve_changed() + +func remove_point(i : int) -> bool: + var index : int = i * 4 + + if index <= 0 or index >= points.size() - 1: + return false + else: + points.remove(index) + points.remove(index) + points.remove(index) + points.remove(index) + + curve_changed() + return true + +func get_point_count() -> int: + return points.size() / 4 + +func set_point(i : int, v : Point) -> void: + var indx : int = i * 4 + + points[indx + 0] = v.p.x + points[indx + 1] = v.p.y + points[indx + 2] = v.ls + points[indx + 3] = v.rs + + curve_changed() + +func get_point(i : int) -> Point: + var indx : int = i * 4 + + return Point.new(points[indx + 0], points[indx + 1], points[indx + 2], points[indx + 3]) + +func get_points() -> Array: + var arr : Array = Array() + + var c : int = get_point_count() + + for i in range(c): + arr.append(get_point(i)) + + return arr + +func set_points(arr : Array, notify : bool = true) -> void: + points.resize(0) + + for p in arr: + points.append(p.p.x) + points.append(p.p.y) + points.append(p.ls) + points.append(p.rs) + + if notify: + curve_changed() + +func curve_changed() -> void: + _curve_changed() + +func _curve_changed() -> void: + emit_changed() diff --git a/game/addons/mat_maker_gd/nodes/bases/gradient_base.gd b/game/addons/mat_maker_gd/nodes/bases/gradient_base.gd new file mode 100644 index 0000000..369614f --- /dev/null +++ b/game/addons/mat_maker_gd/nodes/bases/gradient_base.gd @@ -0,0 +1,64 @@ +tool +extends MMNode + +#var Gradients = preload("res://addons/mat_maker_gd/nodes/common/gradients.gd") + +export(int) var interpolation_type : int = 1 setget set_interpolation_type, get_interpolation_type +export(PoolRealArray) var points : PoolRealArray = PoolRealArray() + +func get_gradient_color(x : float) -> Color: +# if interpolation_type == 0: +# return Gradients.gradient_type_1(x, points) +# elif interpolation_type == 1: +# return Gradients.gradient_type_2(x, points) +# elif interpolation_type == 2: +# return Gradients.gradient_type_3(x, points) +# elif interpolation_type == 3: +# return Gradients.gradient_type_4(x, points) + + return Color(1, 1, 1, 1) + +func get_interpolation_type() -> int: + return interpolation_type + +func set_interpolation_type(val : int) -> void: + interpolation_type = val + + set_dirty(true) + +func get_points() -> PoolRealArray: + return points + +func set_points(val : PoolRealArray) -> void: + points = val + + set_dirty(true) + +func get_point_value(index : int) -> float: + return points[index * 5] + +func get_point_color(index : int) -> Color: + var indx : int = index * 5 + + return Color(points[indx + 1], points[indx + 2], points[indx + 3], points[indx + 4]) + +func add_point(val : float, color : Color) -> void: + var s : int = points.size() + points.resize(s + 5) + + points[s] = val + + points[s + 1] = color.r + points[s + 2] = color.g + points[s + 3] = color.b + points[s + 4] = color.a + + set_dirty(true) + +func get_point_count() -> int: + return points.size() / 5 + +func clear() -> void: + points.resize(0) + + set_dirty(true) diff --git a/game/addons/mat_maker_gd/nodes/bases/polygon_base.gd b/game/addons/mat_maker_gd/nodes/bases/polygon_base.gd new file mode 100644 index 0000000..a740455 --- /dev/null +++ b/game/addons/mat_maker_gd/nodes/bases/polygon_base.gd @@ -0,0 +1,73 @@ +tool +extends MMNode + +export(PoolVector2Array) var points : PoolVector2Array = [Vector2(0.2, 0.2), Vector2(0.7, 0.4), Vector2(0.4, 0.7)] + +func clear() -> void: + points.resize(0) + + _polygon_changed() + +func add_point(x : float, y : float, closed : bool = true) -> void: + var p : Vector2 = Vector2(x, y) + var points_count = points.size() + + if points_count < 3: + points.append(p) + _polygon_changed() + return + + var min_length : float = (p-Geometry.get_closest_point_to_segment_2d(p, points[0], points[points_count-1])).length() + var insert_point = 0 + + for i in points_count-1: + var length = (p - Geometry.get_closest_point_to_segment_2d(p, points[i], points[i+1])).length() + if length < min_length: + min_length = length + insert_point = i+1 + + if !closed and insert_point == 0 and (points[0]-p).length() > (points[points_count-1]-p).length(): + insert_point = points_count + + points.insert(insert_point, p) + + _polygon_changed() + +func remove_point(index : int) -> bool: + var s = points.size() + if s < 4 or index < 0 or index >= s: + return false + else: + points.remove(index) + _polygon_changed() + + return true + +func get_point_count() -> int: + return points.size() + +func get_point(i : int) -> Vector2: + return points[i] + +func set_point(i : int, v : Vector2) -> void: + points[i] = v + + _polygon_changed() + +func set_points(v : PoolVector2Array) -> void: + points = v + + _polygon_changed() + +func polygon_changed() -> void: + _polygon_changed() + +func _polygon_changed() -> void: + emit_changed() + +func to_string() -> String: + var rv = PoolStringArray() + for p in points: + rv.append("("+str(p.x)+","+str(p.y)+")") + + return rv.join(",") diff --git a/game/addons/mat_maker_gd/nodes/filter/adjust_hsv.gd b/game/addons/mat_maker_gd/nodes/filter/adjust_hsv.gd new file mode 100644 index 0000000..b840d89 --- /dev/null +++ b/game/addons/mat_maker_gd/nodes/filter/adjust_hsv.gd @@ -0,0 +1,72 @@ +tool +extends MMNode + +export(Resource) var image : Resource +export(Resource) var input : Resource +export(float) var hue : float = 0 +export(float) var saturation : float = 1 +export(float) var value : float = 1 + +func _init_properties(): + if !input: + input = MMNodeUniversalProperty.new() + input.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_COLOR + input.set_default_value(Color(0, 0, 0, 1)) + + input.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_UNIVERSAL + input.slot_name = ">>> Input1 " + + if !image: + image = MMNodeUniversalProperty.new() + image.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_IMAGE + + #image.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_FLOAT + image.output_slot_type = MMNodeUniversalProperty.SLOT_TYPE_IMAGE + #image.force_override = true + + register_input_property(input) + register_output_property(image) + +func _register_methods(mm_graph_node) -> void: + mm_graph_node.add_slot_label_universal(input) + mm_graph_node.add_slot_texture_universal(image) + mm_graph_node.add_slot_float("get_hue", "set_hue", "Hue", 0.01) + mm_graph_node.add_slot_float("get_saturation", "set_saturation", "Saturation", 0.01) + mm_graph_node.add_slot_float("get_value", "set_value", "Value", 0.01) + +func _render(material) -> void: + var img : Image = render_image(material) + + image.set_value(img) + +func _get_value_for(uv : Vector2, pseed : int) -> Color: + var c : Color = input.get_value(uv) + + return MMAlgos.adjust_hsv(c, hue, saturation, value) + +#hue +func get_hue() -> float: + return hue + +func set_hue(val : float) -> void: + hue = val + + set_dirty(true) + +#saturation +func get_saturation() -> float: + return saturation + +func set_saturation(val : float) -> void: + saturation = val + + set_dirty(true) + +#value +func get_value() -> float: + return value + +func set_value(val : float) -> void: + value = val + + set_dirty(true) diff --git a/game/addons/mat_maker_gd/nodes/filter/blend.gd b/game/addons/mat_maker_gd/nodes/filter/blend.gd new file mode 100644 index 0000000..3d32535 --- /dev/null +++ b/game/addons/mat_maker_gd/nodes/filter/blend.gd @@ -0,0 +1,123 @@ +tool +extends MMNode + +enum BlendType { + NORMAL = 0, + DISSOLVE, + MULTIPLY, + SCREEN, + OVERLAY, + HARD_LIGHT, + SOFT_LIGHT, + BURN, + DODGE, + LIGHTEN, + DARKEN, + DIFFRENCE +} + +export(Resource) var image : Resource +export(Resource) var input1 : Resource +export(Resource) var input2 : Resource +export(int, "Normal,Dissolve,Multiply,Screen,Overlay,Hard Light,Soft Light,Burn,Dodge,Lighten,Darken,Difference") var blend_type : int = 0 +export(Resource) var opacity : Resource + +func _init_properties(): + if !image: + image = MMNodeUniversalProperty.new() + image.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_IMAGE + + image.output_slot_type = MMNodeUniversalProperty.SLOT_TYPE_IMAGE + + if !input1: + input1 = MMNodeUniversalProperty.new() + input1.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_COLOR + input1.set_default_value(Color(1, 1, 1, 1)) + + input1.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_UNIVERSAL + input1.slot_name = ">>> Input1 " + + if !input2: + input2 = MMNodeUniversalProperty.new() + input2.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_COLOR + input2.set_default_value(Color(1, 1, 1, 1)) + + input2.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_UNIVERSAL + input2.slot_name = ">>> Input2 " + + if !opacity: + opacity = MMNodeUniversalProperty.new() + opacity.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_FLOAT + opacity.set_default_value(0.5) + opacity.value_range = Vector2(0, 1) + opacity.value_step = 0.01 + + opacity.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_UNIVERSAL + opacity.slot_name = "opacity" + + register_input_property(input1) + register_input_property(input2) + + register_output_property(image) + register_input_property(opacity) + +func _register_methods(mm_graph_node) -> void: + mm_graph_node.add_slot_texture_universal(image) + mm_graph_node.add_slot_enum("get_blend_type", "set_blend_type", "blend_type", [ "Normal", "Dissolve", "Multiply", "Screen", "Overlay", "Hard Light", "Soft Light", "Burn", "Dodge", "Lighten", "Darken", "Difference" ]) + + mm_graph_node.add_slot_label_universal(input1) + mm_graph_node.add_slot_label_universal(input2) + mm_graph_node.add_slot_float_universal(opacity) + +func _render(material) -> void: + var img : Image = render_image(material) + + image.set_value(img) + +func _get_value_for(uv : Vector2, pseed : int) -> Color: + var b : Vector3 = Vector3() + + #vec4 $(name_uv)_s1 = $s1($uv); + var s1 : Color = input1.get_value(uv) + #vec4 $(name_uv)_s2 = $s2($uv); + var s2 : Color = input2.get_value(uv) + #float $(name_uv)_a = $amount*$a($uv); + var a : float = opacity.get_value(uv) + + #vec4(blend_$blend_type($uv, $(name_uv)_s1.rgb, $(name_uv)_s2.rgb, $(name_uv)_a*$(name_uv)_s1.a), min(1.0, $(name_uv)_s2.a+$(name_uv)_a*$(name_uv)_s1.a)) + + #"Normal,Dissolve,Multiply,Screen,Overlay,Hard Light,Soft Light,Burn,Dodge,Lighten,Darken,Difference" + if blend_type == BlendType.NORMAL: + b = MMAlgos.blend_normal(uv, Vector3(s1.r, s1.g, s1.b), Vector3(s2.r, s2.g, s2.b), a * s1.a) + elif blend_type == BlendType.DISSOLVE: + b = MMAlgos.blend_dissolve(uv, Vector3(s1.r, s1.g, s1.b), Vector3(s2.r, s2.g, s2.b), a * s1.a) + elif blend_type == BlendType.MULTIPLY: + b = MMAlgos.blend_multiply(uv, Vector3(s1.r, s1.g, s1.b), Vector3(s2.r, s2.g, s2.b), a * s1.a) + elif blend_type == BlendType.SCREEN: + b = MMAlgos.blend_screen(uv, Vector3(s1.r, s1.g, s1.b), Vector3(s2.r, s2.g, s2.b), a * s1.a) + elif blend_type == BlendType.OVERLAY: + b = MMAlgos.blend_overlay(uv, Vector3(s1.r, s1.g, s1.b), Vector3(s2.r, s2.g, s2.b), a * s1.a) + elif blend_type == BlendType.HARD_LIGHT: + b = MMAlgos.blend_hard_light(uv, Vector3(s1.r, s1.g, s1.b), Vector3(s2.r, s2.g, s2.b), a * s1.a) + elif blend_type == BlendType.SOFT_LIGHT: + b = MMAlgos.blend_soft_light(uv, Vector3(s1.r, s1.g, s1.b), Vector3(s2.r, s2.g, s2.b), a * s1.a) + elif blend_type == BlendType.BURN: + b = MMAlgos.blend_burn(uv, Vector3(s1.r, s1.g, s1.b), Vector3(s2.r, s2.g, s2.b), a * s1.a) + elif blend_type == BlendType.DODGE: + b = MMAlgos.blend_dodge(uv, Vector3(s1.r, s1.g, s1.b), Vector3(s2.r, s2.g, s2.b), a * s1.a) + elif blend_type == BlendType.LIGHTEN: + b = MMAlgos.blend_lighten(uv, Vector3(s1.r, s1.g, s1.b), Vector3(s2.r, s2.g, s2.b), a * s1.a) + elif blend_type == BlendType.DARKEN: + b = MMAlgos.blend_darken(uv, Vector3(s1.r, s1.g, s1.b), Vector3(s2.r, s2.g, s2.b), a * s1.a) + elif blend_type == BlendType.DIFFRENCE: + b = MMAlgos.blend_difference(uv, Vector3(s1.r, s1.g, s1.b), Vector3(s2.r, s2.g, s2.b), a * s1.a) + + return Color(b.x, b.y, b.z, min(1, s2.a + a * s1.a)) + +func get_blend_type() -> int: + return blend_type + +func set_blend_type(val : int) -> void: + blend_type = val + + set_dirty(true) diff --git a/game/addons/mat_maker_gd/nodes/filter/blur_gaussian.gd b/game/addons/mat_maker_gd/nodes/filter/blur_gaussian.gd new file mode 100644 index 0000000..d61595b --- /dev/null +++ b/game/addons/mat_maker_gd/nodes/filter/blur_gaussian.gd @@ -0,0 +1,218 @@ +tool +extends MMNode + +export(Resource) var image : Resource +export(Resource) var input : Resource +export(Resource) var sigma : Resource +export(int, "Both,X,Y") var direction : int = 0 + +var size : int = 0 + +func _init_properties(): + if !image: + image = MMNodeUniversalProperty.new() + image.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_IMAGE + + image.output_slot_type = MMNodeUniversalProperty.SLOT_TYPE_IMAGE + + if !input: + input = MMNodeUniversalProperty.new() + input.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_COLOR + input.set_default_value(Color()) + + input.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_UNIVERSAL + input.slot_name = ">>> Input1 " + + if !sigma: + sigma = MMNodeUniversalProperty.new() + sigma.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_FLOAT + sigma.set_default_value(50) + + sigma.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_UNIVERSAL + sigma.slot_name = "Sigma" + + register_input_property(input) + register_output_property(image) + register_input_property(sigma) + +func _register_methods(mm_graph_node) -> void: + mm_graph_node.add_slot_texture_universal(image) + mm_graph_node.add_slot_label_universal(input) + mm_graph_node.add_slot_int_universal(sigma) + + mm_graph_node.add_slot_enum("get_direction", "set_direction", "Direction", [ "Both", "X", "Y" ]) + + +func _render(material) -> void: + size = max(material.image_size.x, material.image_size.y) + + var img : Image = render_image(material) + + image.set_value(img) + +func _render_image(material) -> Image: + var img : Image = Image.new() + img.create(material.image_size.x, material.image_size.y, false, Image.FORMAT_RGBA8) + + img.lock() + + var w : float = img.get_width() + var h : float = img.get_width() + + var pseed : float = randf() + randi() + + if direction == 0: + for x in range(img.get_width()): + for y in range(img.get_height()): + var v : Vector2 = Vector2(x / w, y / h) + var col : Color = get_value_x(v, pseed) + img.set_pixel(x, y, col) + + img.unlock() + image.set_value(img) + + var image2 : Image = Image.new() + image2.create(material.image_size.x, material.image_size.y, false, Image.FORMAT_RGBA8) + image2.lock() + + for x in range(img.get_width()): + for y in range(img.get_height()): + var v : Vector2 = Vector2(x / w, y / h) + var col : Color = get_value_y_img(v, pseed) + image2.set_pixel(x, y, col) + + image2.unlock() + + return image2 + + if direction == 1: + for x in range(img.get_width()): + for y in range(img.get_height()): + var v : Vector2 = Vector2(x / w, y / h) + var col : Color = get_value_x(v, pseed) + img.set_pixel(x, y, col) + + if direction == 2: + for x in range(img.get_width()): + for y in range(img.get_height()): + var v : Vector2 = Vector2(x / w, y / h) + var col : Color = get_value_y(v, pseed) + img.set_pixel(x, y, col) + + img.unlock() + + return img + +func get_value_x(uv : Vector2, pseed : int) -> Color: + var sig_def : float = sigma.get_default_value(uv) + var sig : float = sigma.get_value(uv) + + return gaussian_blur_x(uv, size, sig_def, sig) + +func get_value_y(uv : Vector2, pseed : int) -> Color: + var sig_def : float = sigma.get_default_value(uv) + var sig : float = sigma.get_value(uv) + + return gaussian_blur_y(uv, size, sig_def, sig) + +func get_value_y_img(uv : Vector2, pseed : int) -> Color: + var sig_def : float = sigma.get_default_value(uv) + var sig : float = sigma.get_value(uv) + + return gaussian_blur_y_img(uv, size, sig_def, sig) + +func get_direction() -> int: + return direction + +func set_direction(val : int) -> void: + direction = val + + set_dirty(true) + +#---------------------- +#gaussian_blur_x.mmg + +#vec4 $(name)_fct(vec2 uv) { +# float e = 1.0 / $size; +# vec4 rv = vec4(0.0); +# float sum = 0.0; +# float sigma = max(0.000001, $sigma * $amount(uv)); +# +# for (float i = -50.0; i <= 50.0; i += 1.0) { +# float coef = exp(-0.5 * (pow(i / sigma, 2.0))) / (6.28318530718 * sigma * sigma); +# rv += $in(uv+vec2(i*e, 0.0))*coef; +# sum += coef; +# } +# +# return rv/sum; +#} + +func gaussian_blur_x(uv : Vector2, psize : float, psigma : float, pamount : float) -> Color: + var e : float = 1.0 / psize + var rv : Color = Color() + var sum : float = 0.0 + var sigma : float = max(0.000001, psigma * pamount)#pamount(uv)) + + var i : float = -50 + + while i <= 50: #for (float i = -50.0; i <= 50.0; i += 1.0) { + var coef : float = exp(-0.5 * (pow(i / sigma, 2.0))) / (6.28318530718 * sigma * sigma) + rv += input.get_value(uv + Vector2(i*e, 0.0)) * coef + sum += coef + + i += 1 + + return rv / sum; + + +#---------------------- +#gaussian_blur_y.mmg + +#vec4 $(name)_fct(vec2 uv) { +# float e = 1.0/$size; +# vec4 rv = vec4(0.0); +# float sum = 0.0; +# float sigma = max(0.000001, $sigma*$amount(uv)); +# for (float i = -50.0; i <= 50.0; i += 1.0) { +# float coef = exp(-0.5 * (pow(i / sigma, 2.0))) / (6.28318530718*sigma*sigma); +# rv += $in(uv+vec2(0.0, i*e))*coef; +# sum += coef; +# } +# +# return rv/sum; +#} + +func gaussian_blur_y(uv : Vector2, psize : float, psigma : float, pamount : float) -> Color: + var e : float = 1.0 / psize + var rv : Color = Color() + var sum : float = 0.0 + var sigma : float = max(0.000001, psigma * pamount)#pamount(uv)) + + var i : float = -50 + + while i <= 50: #for (float i = -50.0; i <= 50.0; i += 1.0) { + var coef : float = exp(-0.5 * (pow(i / sigma, 2.0))) / (6.28318530718 * sigma * sigma) + rv += input.get_value(uv + Vector2(0.0, i * e)) * coef + sum += coef + + i += 1 + + return rv / sum; + + +func gaussian_blur_y_img(uv : Vector2, psize : float, psigma : float, pamount : float) -> Color: + var e : float = 1.0 / psize + var rv : Color = Color() + var sum : float = 0.0 + var sigma : float = max(0.000001, psigma * pamount)#pamount(uv)) + + var i : float = -50 + + while i <= 50: #for (float i = -50.0; i <= 50.0; i += 1.0) { + var coef : float = exp(-0.5 * (pow(i / sigma, 2.0))) / (6.28318530718 * sigma * sigma) + rv += image.get_value(uv + Vector2(0.0, i * e)) * coef + sum += coef + + i += 1 + + return rv / sum; diff --git a/game/addons/mat_maker_gd/nodes/filter/brightness_contrast.gd b/game/addons/mat_maker_gd/nodes/filter/brightness_contrast.gd new file mode 100644 index 0000000..068b1e1 --- /dev/null +++ b/game/addons/mat_maker_gd/nodes/filter/brightness_contrast.gd @@ -0,0 +1,61 @@ +tool +extends MMNode + +export(Resource) var image : Resource +export(Resource) var input : Resource +export(float) var brightness : float = 0 +export(float) var contrast : float = 1 + +func _init_properties(): + if !input: + input = MMNodeUniversalProperty.new() + input.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_COLOR + input.set_default_value(Color(0, 0, 0, 1)) + + input.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_UNIVERSAL + input.slot_name = ">>> Input1 " + + if !image: + image = MMNodeUniversalProperty.new() + image.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_IMAGE + + #image.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_FLOAT + image.output_slot_type = MMNodeUniversalProperty.SLOT_TYPE_IMAGE + #image.force_override = true + + register_input_property(input) + register_output_property(image) + +func _register_methods(mm_graph_node) -> void: + mm_graph_node.add_slot_label_universal(input) + mm_graph_node.add_slot_texture_universal(image) + mm_graph_node.add_slot_float("get_brightness", "set_brightness", "Brightness", 0.01) + mm_graph_node.add_slot_float("get_contrast", "set_contrast", "Contrast", 0.01) + +func _render(material) -> void: + var img : Image = render_image(material) + + image.set_value(img) + +func _get_value_for(uv : Vector2, pseed : int) -> Color: + var c : Color = input.get_value(uv) + + return MMAlgos.brightness_contrast(c, brightness, contrast) + +#brightness +func get_brightness() -> float: + return brightness + +func set_brightness(val : float) -> void: + brightness = val + + set_dirty(true) + +#contrast +func get_contrast() -> float: + return contrast + +func set_contrast(val : float) -> void: + contrast = val + + set_dirty(true) diff --git a/game/addons/mat_maker_gd/nodes/filter/colorize.gd b/game/addons/mat_maker_gd/nodes/filter/colorize.gd new file mode 100644 index 0000000..438a70c --- /dev/null +++ b/game/addons/mat_maker_gd/nodes/filter/colorize.gd @@ -0,0 +1,53 @@ +tool +extends GradientBase + +export(Resource) var image : Resource +export(Resource) var input : Resource + +func _init_properties(): + if !input: + input = MMNodeUniversalProperty.new() + input.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_FLOAT + input.set_default_value(1) + + input.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_UNIVERSAL + input.slot_name = ">>> Input1 " + + if !image: + image = MMNodeUniversalProperty.new() + image.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_IMAGE + + #image.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_FLOAT + image.output_slot_type = MMNodeUniversalProperty.SLOT_TYPE_IMAGE + #image.force_override = true + + register_input_property(input) + register_output_property(image) + +func _register_methods(mm_graph_node) -> void: + mm_graph_node.add_slot_label_universal(input) + mm_graph_node.add_slot_texture_universal(image) + mm_graph_node.add_slot_gradient() + +func _render(material) -> void: + var img : Image = render_image(material) + + image.set_value(img) + +func _get_value_for(uv : Vector2, pseed : int) -> Color: + var f : float = input.get_value(uv) + + return get_gradient_color(f) +# return Color(0.5, 0.5, 0.5, 1) + +func get_gradient_color(x : float) -> Color: + if interpolation_type == 0: + return MMAlgos.gradient_type_1(x, points) + elif interpolation_type == 1: + return MMAlgos.gradient_type_2(x, points) + elif interpolation_type == 2: + return MMAlgos.gradient_type_3(x, points) + elif interpolation_type == 3: + return MMAlgos.gradient_type_4(x, points) + + return Color(1, 1, 1, 1) diff --git a/game/addons/mat_maker_gd/nodes/filter/combine.gd b/game/addons/mat_maker_gd/nodes/filter/combine.gd new file mode 100644 index 0000000..18c780d --- /dev/null +++ b/game/addons/mat_maker_gd/nodes/filter/combine.gd @@ -0,0 +1,75 @@ +tool +extends MMNode + +export(Resource) var image : Resource +export(Resource) var input_r : Resource +export(Resource) var input_g : Resource +export(Resource) var input_b : Resource +export(Resource) var input_a : Resource + +func _init_properties(): + if !input_r: + input_r = MMNodeUniversalProperty.new() + input_r.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_FLOAT + input_r.set_default_value(0) + + input_r.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_UNIVERSAL + input_r.slot_name = ">>> R " + + if !input_g: + input_g = MMNodeUniversalProperty.new() + input_g.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_FLOAT + input_g.set_default_value(0) + + input_g.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_UNIVERSAL + input_g.slot_name = ">>> G " + + if !input_b: + input_b = MMNodeUniversalProperty.new() + input_b.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_FLOAT + input_b.set_default_value(0) + + input_b.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_UNIVERSAL + input_b.slot_name = ">>> B " + + if !input_a: + input_a = MMNodeUniversalProperty.new() + input_a.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_FLOAT + input_a.set_default_value(1) + + input_a.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_UNIVERSAL + input_a.slot_name = ">>> A " + + if !image: + image = MMNodeUniversalProperty.new() + image.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_IMAGE + + #image.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_FLOAT + image.output_slot_type = MMNodeUniversalProperty.SLOT_TYPE_IMAGE + #image.force_override = true + + register_input_property(input_r) + register_input_property(input_g) + register_input_property(input_b) + register_input_property(input_a) + register_output_property(image) + +func _register_methods(mm_graph_node) -> void: + mm_graph_node.add_slot_label_universal(input_r) + mm_graph_node.add_slot_label_universal(input_g) + mm_graph_node.add_slot_label_universal(input_b) + mm_graph_node.add_slot_label_universal(input_a) + mm_graph_node.add_slot_texture_universal(image) + +func _render(material) -> void: + var img : Image = render_image(material) + + image.set_value(img) + +func _get_value_for(uv : Vector2, pseed : int) -> Color: + var r : float = input_r.get_value(uv) + var g : float = input_g.get_value(uv) + var b : float = input_b.get_value(uv) + var a : float = input_a.get_value(uv) + + return Color(r, g, b, a) diff --git a/game/addons/mat_maker_gd/nodes/filter/decompose.gd b/game/addons/mat_maker_gd/nodes/filter/decompose.gd new file mode 100644 index 0000000..105c60b --- /dev/null +++ b/game/addons/mat_maker_gd/nodes/filter/decompose.gd @@ -0,0 +1,101 @@ +tool +extends MMNode + +export(Resource) var input : Resource +export(Resource) var out_r : Resource +export(Resource) var out_g : Resource +export(Resource) var out_b : Resource +export(Resource) var out_a : Resource + +func _init_properties(): + if !input: + input = MMNodeUniversalProperty.new() + input.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_COLOR + input.set_default_value(Color(0, 0, 0, 1)) + + input.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_UNIVERSAL + input.slot_name = ">>> Input " + + if !out_r: + out_r = MMNodeUniversalProperty.new() + out_r.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_IMAGE + + out_r.output_slot_type = MMNodeUniversalProperty.SLOT_TYPE_IMAGE + + if !out_g: + out_g = MMNodeUniversalProperty.new() + out_g.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_IMAGE + + out_g.output_slot_type = MMNodeUniversalProperty.SLOT_TYPE_IMAGE + + if !out_b: + out_b = MMNodeUniversalProperty.new() + out_b.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_IMAGE + + out_b.output_slot_type = MMNodeUniversalProperty.SLOT_TYPE_IMAGE + + if !out_a: + out_a = MMNodeUniversalProperty.new() + out_a.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_IMAGE + + out_a.output_slot_type = MMNodeUniversalProperty.SLOT_TYPE_IMAGE + + register_input_property(input) + register_output_property(out_r) + register_output_property(out_g) + register_output_property(out_b) + register_output_property(out_a) + + +func _register_methods(mm_graph_node) -> void: + mm_graph_node.add_slot_label_universal(input) + mm_graph_node.add_slot_texture_universal(out_r) + mm_graph_node.add_slot_texture_universal(out_g) + mm_graph_node.add_slot_texture_universal(out_b) + mm_graph_node.add_slot_texture_universal(out_a) + + +func _render(material) -> void: + var img_r : Image = Image.new() + var img_g : Image = Image.new() + var img_b : Image = Image.new() + var img_a : Image = Image.new() + + img_r.create(material.image_size.x, material.image_size.y, false, Image.FORMAT_RGBA8) + img_g.create(material.image_size.x, material.image_size.y, false, Image.FORMAT_RGBA8) + img_b.create(material.image_size.x, material.image_size.y, false, Image.FORMAT_RGBA8) + img_a.create(material.image_size.x, material.image_size.y, false, Image.FORMAT_RGBA8) + + img_r.lock() + img_g.lock() + img_b.lock() + img_a.lock() + + var w : float = material.image_size.x + var h : float = material.image_size.y + + var pseed : float = randf() + randi() + + for x in range(material.image_size.x): + for y in range(material.image_size.y): + var uv : Vector2 = Vector2(x / w, y / h) + + var c : Color = input.get_value(uv) + + img_r.set_pixel(x, y, Color(c.r, c.r, c.r, 1)) + img_g.set_pixel(x, y, Color(c.g, c.g, c.g, 1)) + img_b.set_pixel(x, y, Color(c.b, c.b, c.b, 1)) + img_a.set_pixel(x, y, Color(c.a, c.a, c.a, c.a)) + + img_r.unlock() + img_g.unlock() + img_b.unlock() + img_a.unlock() + + out_r.set_value(img_r) + out_g.set_value(img_g) + out_b.set_value(img_b) + out_a.set_value(img_a) + +func _get_value_for(uv : Vector2, pseed : int) -> Color: + return Color() diff --git a/game/addons/mat_maker_gd/nodes/filter/emboss.gd b/game/addons/mat_maker_gd/nodes/filter/emboss.gd new file mode 100644 index 0000000..bebb658 --- /dev/null +++ b/game/addons/mat_maker_gd/nodes/filter/emboss.gd @@ -0,0 +1,110 @@ +tool +extends MMNode + +export(Resource) var image : Resource +export(Resource) var input : Resource +export(float) var angle : float = 0 +export(float) var amount : float = 5 +export(float) var width : float = 1 + +var size : int = 0 + +func _init_properties(): + if !image: + image = MMNodeUniversalProperty.new() + image.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_IMAGE + + image.output_slot_type = MMNodeUniversalProperty.SLOT_TYPE_IMAGE + + if !input: + input = MMNodeUniversalProperty.new() + input.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_FLOAT + input.set_default_value(1) + + input.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_UNIVERSAL + input.slot_name = ">>> Input1 " + + register_input_property(input) + register_output_property(image) + +func _register_methods(mm_graph_node) -> void: + mm_graph_node.add_slot_texture_universal(image) + mm_graph_node.add_slot_label_universal(input) + + mm_graph_node.add_slot_float("get_angle", "set_angle", "Angle", 0.1) + mm_graph_node.add_slot_float("get_amount", "set_amount", "Amount", 0.1) + mm_graph_node.add_slot_float("get_width", "set_width", "Width", 1) + + +func _render(material) -> void: + size = max(material.image_size.x, material.image_size.y) + + var img : Image = render_image(material) + + image.set_value(img) + +func _get_value_for(uv : Vector2, pseed : int) -> Color: + var f : float = 0 + + f = emboss(uv, size, angle, amount, width) + + return Color(f, f, f, 1) + +func get_angle() -> float: + return angle + +func set_angle(val : float) -> void: + angle = val + + set_dirty(true) + +func get_amount() -> float: + return amount + +func set_amount(val : float) -> void: + amount = val + + set_dirty(true) + +func get_width() -> float: + return width + +func set_width(val : float) -> void: + width = val + + set_dirty(true) + +#float $(name)_fct(vec2 uv) { +# float pixels = max(1.0, $width); +# float e = 1.0/$size; +# float rv = 0.0; +# +# for (float dx = -pixels; dx <= pixels; dx += 1.0) { +# for (float dy = -pixels; dy <= pixels; dy += 1.0) { +# if (abs(dx) > 0.5 || abs(dy) > 0.5) { +# rv += $in(uv+e*vec2(dx, dy))*cos(atan(dy, dx)-$angle*3.14159265359/180.0)/length(vec2(dx, dy)); +# } +# } +# } +# +# return $amount*rv/pixels+0.5; +#} + +func emboss(uv : Vector2, psize : float, pangle : float, pamount : float, pwidth : float) -> float: + var pixels : float = max(1.0, pwidth) + var e : float = 1.0 / psize + var rv : float = 0.0 + + var dx : float = -pixels + var dy : float = -pixels + + while dx <= pixels: #for (float dx = -pixels; dx <= pixels; dx += 1.0) { + while dy <= pixels: #for (float dy = -pixels; dy <= pixels; dy += 1.0) { + if (abs(dx) > 0.5 || abs(dy) > 0.5): + rv += input.get_value(uv + e * Vector2(dx, dy)) * cos(atan2(dy, dx) - pangle * 3.14159265359 / 180.0) / Vector2(dx, dy).length() + + dx += 1 + dy += 1 + + return pamount * rv / pixels + 0.5 + diff --git a/game/addons/mat_maker_gd/nodes/filter/fill_channel.gd b/game/addons/mat_maker_gd/nodes/filter/fill_channel.gd new file mode 100644 index 0000000..b0acc5d --- /dev/null +++ b/game/addons/mat_maker_gd/nodes/filter/fill_channel.gd @@ -0,0 +1,69 @@ +tool +extends MMNode + +export(Resource) var image : Resource +export(Resource) var input : Resource +export(Resource) var value : Resource +export(int, "R,G,B,A") var channel : int = 3 + +func _init_properties(): + if !image: + image = MMNodeUniversalProperty.new() + image.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_IMAGE + + image.output_slot_type = MMNodeUniversalProperty.SLOT_TYPE_IMAGE + + if !input: + input = MMNodeUniversalProperty.new() + input.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_COLOR + input.set_default_value(Color()) + + input.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_UNIVERSAL + input.slot_name = ">>> Input1 " + + if !value: + value = MMNodeUniversalProperty.new() + value.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_FLOAT + value.set_default_value(1) + + value.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_UNIVERSAL + value.value_step = 0.01 + value.value_range = Vector2(0, 1) + + register_input_property(input) + register_output_property(image) + register_input_property(value) + +func _register_methods(mm_graph_node) -> void: + mm_graph_node.add_slot_label_universal(input) + mm_graph_node.add_slot_texture_universal(image) + mm_graph_node.add_slot_float_universal(value) + mm_graph_node.add_slot_enum("get_channel", "set_channel", "Channel", [ "R", "G", "B", "A" ]) + + +func _render(material) -> void: + var img : Image = render_image(material) + + image.set_value(img) + +func _get_value_for(uv : Vector2, pseed : int) -> Color: + var col : Color = input.get_value(uv) + + if channel == 0: + col.r = value.get_value(uv) + if channel == 1: + col.g = value.get_value(uv) + if channel == 2: + col.b = value.get_value(uv) + if channel == 3: + col.a = value.get_value(uv) + + return col + +func get_channel() -> int: + return channel + +func set_channel(val : int) -> void: + channel = val + + set_dirty(true) diff --git a/game/addons/mat_maker_gd/nodes/filter/fill_to_color.gd b/game/addons/mat_maker_gd/nodes/filter/fill_to_color.gd new file mode 100644 index 0000000..b65abe9 --- /dev/null +++ b/game/addons/mat_maker_gd/nodes/filter/fill_to_color.gd @@ -0,0 +1,67 @@ +tool +extends MMNode + +export(Resource) var image : Resource +export(Resource) var input : Resource +export(Resource) var color_map : Resource +export(Color) var edge_color : Color = Color(1, 1, 1, 1) + +func _init_properties(): + if !input: + input = MMNodeUniversalProperty.new() + input.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_COLOR + input.set_default_value(Color(0, 0, 0, 1)) + + input.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_UNIVERSAL + input.slot_name = ">>> Input " + + if !color_map: + color_map = MMNodeUniversalProperty.new() + color_map.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_COLOR + color_map.set_default_value(Color(1, 1, 1, 1)) + + color_map.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_UNIVERSAL + color_map.slot_name = ">>> Color Map " + + if !image: + image = MMNodeUniversalProperty.new() + image.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_IMAGE + + #image.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_FLOAT + image.output_slot_type = MMNodeUniversalProperty.SLOT_TYPE_IMAGE + #image.force_override = true + + register_input_property(input) + register_input_property(color_map) + register_output_property(image) + +func _register_methods(mm_graph_node) -> void: + mm_graph_node.add_slot_label_universal(input) + mm_graph_node.add_slot_label_universal(color_map) + mm_graph_node.add_slot_texture_universal(image) + mm_graph_node.add_slot_color("get_edge_color", "set_edge_color") + +func _render(material) -> void: + var img : Image = render_image(material) + + image.set_value(img) + +func _get_value_for(uv : Vector2, pseed : int) -> Color: + #vec4 $(name_uv)_bb = $in($uv); + var c : Color = input.get_value(uv) + + #mix($edgecolor, $map(fract($(name_uv)_bb.xy+0.5*$(name_uv)_bb.zw)), step(0.0000001, dot($(name_uv)_bb.zw, vec2(1.0)))) + + var rc : Color = color_map.get_value(MMAlgos.fractv2(Vector2(c.r, c.g) + 0.5 * Vector2(c.b, c.a))) + var s : float = MMAlgos.step(0.0000001, Vector2(c.b, c.a).dot(Vector2(1, 1))) + + return lerp(edge_color, rc, s) + +#edge_color +func get_edge_color() -> Color: + return edge_color + +func set_edge_color(val : Color) -> void: + edge_color = val + + set_dirty(true) diff --git a/game/addons/mat_maker_gd/nodes/filter/fill_to_position.gd b/game/addons/mat_maker_gd/nodes/filter/fill_to_position.gd new file mode 100644 index 0000000..6cc17b7 --- /dev/null +++ b/game/addons/mat_maker_gd/nodes/filter/fill_to_position.gd @@ -0,0 +1,65 @@ +tool +extends MMNode + +export(Resource) var image : Resource +export(Resource) var input : Resource +export(int, "X,Y,Radial") var axis : int = 2 + +func _init_properties(): + if !input: + input = MMNodeUniversalProperty.new() + input.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_COLOR + input.set_default_value(Color(0, 0, 0, 1)) + + input.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_UNIVERSAL + input.slot_name = ">>> Input " + + if !image: + image = MMNodeUniversalProperty.new() + image.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_IMAGE + + #image.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_FLOAT + image.output_slot_type = MMNodeUniversalProperty.SLOT_TYPE_IMAGE + #image.force_override = true + + register_input_property(input) + register_output_property(image) + +func _register_methods(mm_graph_node) -> void: + mm_graph_node.add_slot_label_universal(input) + mm_graph_node.add_slot_texture_universal(image) + mm_graph_node.add_slot_enum("get_axis", "set_axis", "Axis", [ "X", "Y", "Radial" ]) + +func _render(material) -> void: + var img : Image = render_image(material) + + image.set_value(img) + +func _get_value_for(uv : Vector2, pseed : int) -> Color: + var c : Color = input.get_value(uv) + #vec2 $(name_uv)_c = fract($in($uv).xy+0.5*$in($uv).zw); + var cnv : Vector2 = MMAlgos.fractv2(Vector2(c.r, c.g) + 0.5 * Vector2(c.b, c.a)) + + #X, $(name_uv)_c.x + #Y, $(name_uv)_c.y + #Radial, length($(name_uv)_c-vec2(0.5)) + + if axis == 0: + return Color(cnv.x, cnv.x, cnv.x, 1) + elif axis == 1: + return Color(cnv.y, cnv.y, cnv.y, 1) + elif axis == 2: + var f : float = (cnv - Vector2(0.5, 0.5)).length() + + return Color(f, f, f, 1) + + return Color(0, 0, 0, 1) + +#axis +func get_axis() -> int: + return axis + +func set_axis(val : int) -> void: + axis = val + + set_dirty(true) diff --git a/game/addons/mat_maker_gd/nodes/filter/fill_to_random_color.gd b/game/addons/mat_maker_gd/nodes/filter/fill_to_random_color.gd new file mode 100644 index 0000000..3527860 --- /dev/null +++ b/game/addons/mat_maker_gd/nodes/filter/fill_to_random_color.gd @@ -0,0 +1,58 @@ +tool +extends MMNode + +export(Resource) var image : Resource +export(Resource) var input : Resource +export(Color) var edge_color : Color = Color(1, 1, 1, 1) + +func _init_properties(): + if !input: + input = MMNodeUniversalProperty.new() + input.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_COLOR + input.set_default_value(Color(0, 0, 0, 1)) + + input.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_UNIVERSAL + input.slot_name = ">>> Input " + + if !image: + image = MMNodeUniversalProperty.new() + image.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_IMAGE + + #image.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_FLOAT + image.output_slot_type = MMNodeUniversalProperty.SLOT_TYPE_IMAGE + #image.force_override = true + + register_input_property(input) + register_output_property(image) + +func _register_methods(mm_graph_node) -> void: + mm_graph_node.add_slot_label_universal(input) + mm_graph_node.add_slot_texture_universal(image) + mm_graph_node.add_slot_color("get_edge_color", "set_edge_color") + +func _render(material) -> void: + var img : Image = render_image(material) + + image.set_value(img) + +func _get_value_for(uv : Vector2, pseed : int) -> Color: + #vec4 $(name_uv)_bb = $in($uv); + var c : Color = input.get_value(uv) + + #mix($edgecolor.rgb, rand3(vec2(float($seed), rand(vec2(rand($(name_uv)_bb.xy), rand($(name_uv)_bb.zw))))), step(0.0000001, dot($(name_uv)_bb.zw, vec2(1.0)))) + + var r1 : float = MMAlgos.rand(Vector2(c.r, c.g)) + var r2 : float = MMAlgos.rand(Vector2(c.b, c.a)) + var s : float = MMAlgos.step(0.0000001, Vector2(c.b, c.a).dot(Vector2(1, 1))) + + var f : Vector3 = lerp(Vector3(edge_color.r, edge_color.g, edge_color.b), MMAlgos.rand3(Vector2(1.0 / float(pseed), MMAlgos.rand(Vector2(r1, r2)))), s) + return Color(f.x, f.y, f.z, 1) + +#edge_color +func get_edge_color() -> Color: + return edge_color + +func set_edge_color(val : Color) -> void: + edge_color = val + + set_dirty(true) diff --git a/game/addons/mat_maker_gd/nodes/filter/fill_to_random_grey.gd b/game/addons/mat_maker_gd/nodes/filter/fill_to_random_grey.gd new file mode 100644 index 0000000..0f4e0ba --- /dev/null +++ b/game/addons/mat_maker_gd/nodes/filter/fill_to_random_grey.gd @@ -0,0 +1,57 @@ +tool +extends MMNode + +export(Resource) var image : Resource +export(Resource) var input : Resource +export(float) var edge_color : float = 1 + +func _init_properties(): + if !input: + input = MMNodeUniversalProperty.new() + input.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_COLOR + input.set_default_value(Color(0, 0, 0, 1)) + + input.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_UNIVERSAL + input.slot_name = ">>> Input " + + if !image: + image = MMNodeUniversalProperty.new() + image.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_IMAGE + + #image.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_FLOAT + image.output_slot_type = MMNodeUniversalProperty.SLOT_TYPE_IMAGE + #image.force_override = true + + register_input_property(input) + register_output_property(image) + +func _register_methods(mm_graph_node) -> void: + mm_graph_node.add_slot_label_universal(input) + mm_graph_node.add_slot_texture_universal(image) + mm_graph_node.add_slot_float("get_edge_color", "set_edge_color", "Edge color", 0.01) + +func _render(material) -> void: + var img : Image = render_image(material) + + image.set_value(img) + +func _get_value_for(uv : Vector2, pseed : int) -> Color: + #vec4 $(name_uv)_bb = $in($uv); + var c : Color = input.get_value(uv) + + #mix($edgecolor, rand(vec2(float($seed), rand(vec2(rand($(name_uv)_bb.xy), rand($(name_uv)_bb.zw))))), step(0.0000001, dot($(name_uv)_bb.zw, vec2(1.0)))) + var r1 : float = MMAlgos.rand(Vector2(c.r, c.g)) + var r2 : float = MMAlgos.rand(Vector2(c.b, c.a)) + var s : float = MMAlgos.step(0.0000001, Vector2(c.b, c.a).dot(Vector2(1, 1))) + + var f : float = lerp(edge_color, MMAlgos.rand(Vector2(1.0 / float(pseed), MMAlgos.rand(Vector2(r1, r2)))), s) + return Color(f, f, f, 1) + +#edge_color +func get_edge_color() -> float: + return edge_color + +func set_edge_color(val : float) -> void: + edge_color = val + + set_dirty(true) diff --git a/game/addons/mat_maker_gd/nodes/filter/fill_to_size.gd b/game/addons/mat_maker_gd/nodes/filter/fill_to_size.gd new file mode 100644 index 0000000..b10a0ec --- /dev/null +++ b/game/addons/mat_maker_gd/nodes/filter/fill_to_size.gd @@ -0,0 +1,67 @@ +tool +extends MMNode + +export(Resource) var image : Resource +export(Resource) var input : Resource +export(int, "Area,Width,Height,Max(W,H)") var formula : int = 0 + +func _init_properties(): + if !input: + input = MMNodeUniversalProperty.new() + input.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_COLOR + input.set_default_value(Color(0, 0, 0, 1)) + + input.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_UNIVERSAL + input.slot_name = ">>> Input " + + if !image: + image = MMNodeUniversalProperty.new() + image.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_IMAGE + + #image.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_FLOAT + image.output_slot_type = MMNodeUniversalProperty.SLOT_TYPE_IMAGE + #image.force_override = true + + register_input_property(input) + register_output_property(image) + +func _register_methods(mm_graph_node) -> void: + mm_graph_node.add_slot_label_universal(input) + mm_graph_node.add_slot_texture_universal(image) + mm_graph_node.add_slot_enum("get_formula", "set_formula", "Formula", [ "Area", "Width", "Height", "Max(W,H)" ]) + +func _render(material) -> void: + var img : Image = render_image(material) + + image.set_value(img) + +func _get_value_for(uv : Vector2, pseed : int) -> Color: + #vec4 $(name_uv)_bb = $in($uv); + var c : Color = input.get_value(uv) + + var f : float = 0 + + #"Area" sqrt($(name_uv)_bb.z*$(name_uv)_bb.w) + #"Width" $(name_uv)_bb.z + #"Height" $(name_uv)_bb.w + #"max(W, H)" max($(name_uv)_bb.z, $(name_uv)_bb.w) + + if formula == 0: + f = sqrt(c.b * c.a) + elif formula == 1: + f = c.b + elif formula == 2: + f = c.a + elif formula == 3: + f = max(c.b, c.a) + + return Color(f, f, f, 1) + +#formula +func get_formula() -> int: + return formula + +func set_formula(val : int) -> void: + formula = val + + set_dirty(true) diff --git a/game/addons/mat_maker_gd/nodes/filter/fill_to_uv.gd b/game/addons/mat_maker_gd/nodes/filter/fill_to_uv.gd new file mode 100644 index 0000000..f2d7115 --- /dev/null +++ b/game/addons/mat_maker_gd/nodes/filter/fill_to_uv.gd @@ -0,0 +1,59 @@ +tool +extends MMNode + +export(Resource) var image : Resource +export(Resource) var input : Resource +export(int, "Stretch,Square") var mode : int = 0 + +func _init_properties(): + if !input: + input = MMNodeUniversalProperty.new() + input.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_COLOR + input.set_default_value(Color(0, 0, 0, 1)) + + input.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_UNIVERSAL + input.slot_name = ">>> Input " + + if !image: + image = MMNodeUniversalProperty.new() + image.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_IMAGE + + #image.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_FLOAT + image.output_slot_type = MMNodeUniversalProperty.SLOT_TYPE_IMAGE + #image.force_override = true + + register_input_property(input) + register_output_property(image) + +func _register_methods(mm_graph_node) -> void: + mm_graph_node.add_slot_label_universal(input) + mm_graph_node.add_slot_texture_universal(image) + mm_graph_node.add_slot_enum("get_mode", "set_mode", "Mode", [ "Stretch", "Square" ]) + +func _render(material) -> void: + var img : Image = render_image(material) + + image.set_value(img) + +func _get_value_for(uv : Vector2, pseed : int) -> Color: + #vec4 $(name_uv)_bb = $in($uv); + var c : Color = input.get_value(uv) + + #fill_to_uv_$mode($uv, $(name_uv)_bb, float($seed)) + var r : Vector3 = Vector3() + + if mode == 0: + r = MMAlgos.fill_to_uv_stretch(uv, c, float(pseed)) + elif mode == 1: + r = MMAlgos.fill_to_uv_square(uv, c, float(pseed)) + + return Color(r.x, r.y, r.z, 1) + +#mode +func get_mode() -> int: + return mode + +func set_mode(val : int) -> void: + mode = val + + set_dirty(true) diff --git a/game/addons/mat_maker_gd/nodes/filter/greyscale.gd b/game/addons/mat_maker_gd/nodes/filter/greyscale.gd new file mode 100644 index 0000000..99c396c --- /dev/null +++ b/game/addons/mat_maker_gd/nodes/filter/greyscale.gd @@ -0,0 +1,63 @@ +tool +extends MMNode + +export(Resource) var image : Resource +export(Resource) var input : Resource +export(int, "Lightness,Average,Luminosity,Min,Max") var type : int = 2 + +func _init_properties(): + if !input: + input = MMNodeUniversalProperty.new() + input.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_COLOR + input.set_default_value(Color(0, 0, 0, 1)) + + input.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_UNIVERSAL + input.slot_name = ">>> Input1 " + + if !image: + image = MMNodeUniversalProperty.new() + image.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_IMAGE + + #image.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_FLOAT + image.output_slot_type = MMNodeUniversalProperty.SLOT_TYPE_IMAGE + #image.force_override = true + + register_input_property(input) + register_output_property(image) + +func _register_methods(mm_graph_node) -> void: + mm_graph_node.add_slot_label_universal(input) + mm_graph_node.add_slot_texture_universal(image) + mm_graph_node.add_slot_enum("get_type", "set_type", "Type", [ "Lightness", "Average", "Luminosity", "Min", "Max" ]) + +func _render(material) -> void: + var img : Image = render_image(material) + + image.set_value(img) + +func _get_value_for(uv : Vector2, pseed : int) -> Color: + var c : Color = input.get_value(uv) + + var f : float = 0 + + if type == 0: + f = MMAlgos.grayscale_lightness(Vector3(c.r, c.g, c.b)) + elif type == 1: + f = MMAlgos.grayscale_average(Vector3(c.r, c.g, c.b)) + elif type == 2: + f = MMAlgos.grayscale_luminosity(Vector3(c.r, c.g, c.b)) + elif type == 3: + f = MMAlgos.grayscale_min(Vector3(c.r, c.g, c.b)) + elif type == 4: + f = MMAlgos.grayscale_max(Vector3(c.r, c.g, c.b)) + + return Color(f, f, f, c.a) + +#type +func get_type() -> int: + return type + +func set_type(val : int) -> void: + type = val + + set_dirty(true) diff --git a/game/addons/mat_maker_gd/nodes/filter/invert.gd b/game/addons/mat_maker_gd/nodes/filter/invert.gd new file mode 100644 index 0000000..0d6ee74 --- /dev/null +++ b/game/addons/mat_maker_gd/nodes/filter/invert.gd @@ -0,0 +1,39 @@ +tool +extends MMNode + +export(Resource) var image : Resource +export(Resource) var input : Resource + +func _init_properties(): + if !input: + input = MMNodeUniversalProperty.new() + input.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_COLOR + input.set_default_value(Color(0, 0, 0, 1)) + + input.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_UNIVERSAL + input.slot_name = ">>> Input1 " + + if !image: + image = MMNodeUniversalProperty.new() + image.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_IMAGE + + #image.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_FLOAT + image.output_slot_type = MMNodeUniversalProperty.SLOT_TYPE_IMAGE + #image.force_override = true + + register_input_property(input) + register_output_property(image) + +func _register_methods(mm_graph_node) -> void: + mm_graph_node.add_slot_label_universal(input) + mm_graph_node.add_slot_texture_universal(image) + +func _render(material) -> void: + var img : Image = render_image(material) + + image.set_value(img) + +func _get_value_for(uv : Vector2, pseed : int) -> Color: + var c : Color = input.get_value(uv) + + return MMAlgos.invert(c) diff --git a/game/addons/mat_maker_gd/nodes/filter/make_tileable.gd b/game/addons/mat_maker_gd/nodes/filter/make_tileable.gd new file mode 100644 index 0000000..eb7d784 --- /dev/null +++ b/game/addons/mat_maker_gd/nodes/filter/make_tileable.gd @@ -0,0 +1,75 @@ +tool +extends MMNode + +export(Resource) var image : Resource +export(Resource) var input : Resource +export(float) var width : float = 0.1 + +var size : int = 0 + +func _init_properties(): + if !image: + image = MMNodeUniversalProperty.new() + image.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_IMAGE + + image.output_slot_type = MMNodeUniversalProperty.SLOT_TYPE_IMAGE + + if !input: + input = MMNodeUniversalProperty.new() + input.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_COLOR + input.set_default_value(Color()) + + input.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_UNIVERSAL + input.slot_name = ">>> Input1 " + + register_input_property(input) + register_output_property(image) + +func _register_methods(mm_graph_node) -> void: + mm_graph_node.add_slot_texture_universal(image) + mm_graph_node.add_slot_label_universal(input) + + mm_graph_node.add_slot_float("get_width", "set_width", "Width", 0.01) + + +func _render(material) -> void: + size = max(material.image_size.x, material.image_size.y) + + var img : Image = render_image(material) + + image.set_value(img) + +func _get_value_for(uv : Vector2, pseed : int) -> Color: + #make_tileable_$(name)($uv, 0.5*$w) + return make_tileable(uv, 0.5 * width) + +func get_width() -> float: + return width + +func set_width(val : float) -> void: + width = val + + set_dirty(true) + + +#---------------------- +#make_tileable.mmg + +#vec4 make_tileable_$(name)(vec2 uv, float w) { +# vec4 a = $in(uv); +# vec4 b = $in(fract(uv+vec2(0.5))); +# float coef_ab = sin(1.57079632679*clamp((length(uv-vec2(0.5))-0.5+w)/w, 0.0, 1.0)); +# vec4 c = $in(fract(uv+vec2(0.25))); +# float coef_abc = sin(1.57079632679*clamp((min(min(length(uv-vec2(0.0, 0.5)), length(uv-vec2(0.5, 0.0))), min(length(uv-vec2(1.0, 0.5)), length(uv-vec2(0.5, 1.0))))-w)/w, 0.0, 1.0)); +# return mix(c, mix(a, b, coef_ab), coef_abc); +#} + +func make_tileable(uv : Vector2, w : float) -> Color: + var a: Color = input.get_value(uv); + var b : Color = input.get_value(MMAlgos.fractv2(uv + Vector2(0.5, 0.5))); + var coef_ab : float = sin(1.57079632679 * clamp(((uv - Vector2(0.5, 0.5)).length() - 0.5 + w) / w, 0.0, 1.0)); + var c: Color = input.get_value(MMAlgos.fractv2(uv + Vector2(0.25, 0.25))); + var coef_abc : float = sin(1.57079632679 * clamp((min(min((uv - Vector2(0.0, 0.5)).length(), (uv - Vector2(0.5, 0.0)).length()), min((uv- Vector2(1.0, 0.5)).length(), (uv - Vector2(0.5, 1.0)).length())) - w) / w, 0.0, 1.0)); + + return lerp(c, lerp(a, b, coef_ab), coef_abc) + diff --git a/game/addons/mat_maker_gd/nodes/filter/math.gd b/game/addons/mat_maker_gd/nodes/filter/math.gd new file mode 100644 index 0000000..0b9b22c --- /dev/null +++ b/game/addons/mat_maker_gd/nodes/filter/math.gd @@ -0,0 +1,148 @@ +tool +extends MMNode + +export(Resource) var image : Resource +export(Resource) var a : Resource +export(Resource) var b : Resource +export(Resource) var output : Resource + +export(int, "A+B,A-B,A*B,A/B,log(A),log2(A),pow(A; B),abs(A),round(A),floor(A),ceil(A),trunc(A),fract(A),min(A; B),max(A; B),A void: + mm_graph_node.add_slot_label_universal(a) + mm_graph_node.add_slot_label_universal(b) + mm_graph_node.add_slot_label_universal(output) + mm_graph_node.add_slot_texture_universal(image) + mm_graph_node.add_slot_enum("get_operation", "set_operation", "Operation", [ "A+B", "A-B", "A*B", "A/B", "log(A)", "log2(A)", "pow(A, B)", "abs(A)", "round(A)", "floor(A)", "ceil(A)", "trunc(A)", "fract(A)", "min(A, B)", "max(A, B)", "A float: + var af : float = a.get_value(uv) + var bf : float = b.get_value(uv) + + var f : float = 0 + + if operation == 0:#"A+B", + f = af + bf + elif operation == 1:#"A-B", + f = af - bf + elif operation == 2:#"A*B", + f = af * bf + elif operation == 3:#"A/B", + if bf == 0: + bf = 0.000001 + f = af / bf + elif operation == 4:#"log(A)", + #todo needs to be implemented + f = log(af) + elif operation == 5:#"log2(A)", + #todo needs to be implemented + f = log(af) + elif operation == 6:#"pow(A, B)", + f = pow(af, bf) + elif operation == 7:#"abs(A)", + f = abs(af) + elif operation == 8:#"round(A)", + f = round(af) + elif operation == 9:#"floor(A)", + f = floor(af) + elif operation == 10:#"ceil(A)", + f = ceil(af) + elif operation == 11:#"trunc(A)", + f = int(af) + elif operation == 12:#"fract(A)", + f = MMAlgos.fractf(af) + elif operation == 13:#"min(A, B)", + f = min(af, bf) + elif operation == 14:#"max(A, B)", + f = max(af, bf) + elif operation == 15:#"A void: + var img : Image = render_image(material) + + image.set_value(img) + +func _get_value_for(uv : Vector2, pseed : int) -> Color: + var f : float = get_property_value(uv) + + return Color(f, f, f, 1) + +#operation +func get_operation() -> int: + return operation + +func set_operation(val : int) -> void: + operation = val + + set_dirty(true) + output.emit_changed() + +#clamp_result +func get_clamp_result() -> bool: + return clamp_result + +func set_clamp_result(val : bool) -> void: + clamp_result = val + + set_dirty(true) + output.emit_changed() diff --git a/game/addons/mat_maker_gd/nodes/filter/quantize.gd b/game/addons/mat_maker_gd/nodes/filter/quantize.gd new file mode 100644 index 0000000..e1f5498 --- /dev/null +++ b/game/addons/mat_maker_gd/nodes/filter/quantize.gd @@ -0,0 +1,53 @@ +tool +extends MMNode + +export(Resource) var image : Resource +export(Resource) var input : Resource +export(int) var steps : int = 4 + +func _init_properties(): + if !input: + input = MMNodeUniversalProperty.new() + input.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_COLOR + input.set_default_value(Color(0, 0, 0, 1)) + + input.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_UNIVERSAL + input.slot_name = ">>> Input " + + if !image: + image = MMNodeUniversalProperty.new() + image.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_IMAGE + + #image.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_FLOAT + image.output_slot_type = MMNodeUniversalProperty.SLOT_TYPE_IMAGE + #image.force_override = true + + register_input_property(input) + register_output_property(image) + +func _register_methods(mm_graph_node) -> void: + mm_graph_node.add_slot_label_universal(input) + mm_graph_node.add_slot_texture_universal(image) + mm_graph_node.add_slot_int("get_steps", "set_steps", "Steps") + +func _render(material) -> void: + var img : Image = render_image(material) + + image.set_value(img) + +func _get_value_for(uv : Vector2, pseed : int) -> Color: + var c : Color = input.get_value(uv) + + #vec4(floor($in($uv).rgb*$steps)/$steps, $in($uv).a) + var v : Vector3 = MMAlgos.floorv3(Vector3(c.r, c.g, c.b) * steps) / float(steps) + + return Color(v.x, v.y, v.z, c.a) + +#steps +func get_steps() -> int: + return steps + +func set_steps(val : int) -> void: + steps = val + + set_dirty(true) diff --git a/game/addons/mat_maker_gd/nodes/filter/swap_channels.gd b/game/addons/mat_maker_gd/nodes/filter/swap_channels.gd new file mode 100644 index 0000000..a565a38 --- /dev/null +++ b/game/addons/mat_maker_gd/nodes/filter/swap_channels.gd @@ -0,0 +1,108 @@ +tool +extends MMNode + +export(Resource) var image : Resource +export(Resource) var input : Resource +export(int, "0,1,R,-R,G,-G,B,-B,A,-A") var op_r : int = 2 +export(int, "0,1,R,-R,G,-G,B,-B,A,-A") var op_g : int = 4 +export(int, "0,1,R,-R,G,-G,B,-B,A,-A") var op_b : int = 6 +export(int, "0,1,R,-R,G,-G,B,-B,A,-A") var op_a : int = 8 + +func _init_properties(): + if !input: + input = MMNodeUniversalProperty.new() + input.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_COLOR + input.set_default_value(Color(0, 0, 0, 1)) + + input.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_UNIVERSAL + input.slot_name = ">>> Input " + + if !image: + image = MMNodeUniversalProperty.new() + image.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_IMAGE + + #image.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_FLOAT + image.output_slot_type = MMNodeUniversalProperty.SLOT_TYPE_IMAGE + #image.force_override = true + + register_input_property(input) + register_output_property(image) + +func _register_methods(mm_graph_node) -> void: + mm_graph_node.add_slot_label_universal(input) + mm_graph_node.add_slot_texture_universal(image) + + mm_graph_node.add_slot_enum("get_op_r", "set_op_r", "R", [ "0", "1", "R", "-R", "G", "-G", "B", "-B", "A","-A" ]) + mm_graph_node.add_slot_enum("get_op_g", "set_op_g", "G", [ "0", "1", "R", "-R", "G", "-G", "B", "-B", "A","-A" ]) + mm_graph_node.add_slot_enum("get_op_b", "set_op_b", "B", [ "0", "1", "R", "-R", "G", "-G", "B", "-B", "A","-A" ]) + mm_graph_node.add_slot_enum("get_op_a", "set_op_a", "A", [ "0", "1", "R", "-R", "G", "-G", "B", "-B", "A","-A" ]) + +func _render(material) -> void: + var img : Image = render_image(material) + + image.set_value(img) + +func apply(op : int, val : Color) -> float: + if op == 0: + return 0.0 + elif op == 1: + return 1.0 + elif op == 2: + return val.r + elif op == 3: + return 1.0 - val.r + elif op == 4: + return val.g + elif op == 5: + return 1.0 - val.g + elif op == 6: + return val.b + elif op == 7: + return 1.0 - val.b + elif op == 8: + return val.a + elif op == 9: + return 1.0 - val.a + + return 0.0 + +func _get_value_for(uv : Vector2, pseed : int) -> Color: + var c : Color = input.get_value(uv) + + return Color(apply(op_r, c), apply(op_g, c), apply(op_b, c), apply(op_a, c)) + +#op_r +func get_op_r() -> int: + return op_r + +func set_op_r(val : int) -> void: + op_r = val + + set_dirty(true) + +#op_g +func get_op_g() -> int: + return op_g + +func set_op_g(val : int) -> void: + op_g = val + + set_dirty(true) + +#op_b +func get_op_b() -> int: + return op_b + +func set_op_b(val : int) -> void: + op_b = val + + set_dirty(true) + +#op_a +func get_op_a() -> int: + return op_a + +func set_op_a(val : int) -> void: + op_a = val + + set_dirty(true) diff --git a/game/addons/mat_maker_gd/nodes/filter/tonality.gd b/game/addons/mat_maker_gd/nodes/filter/tonality.gd new file mode 100644 index 0000000..bdf4e5e --- /dev/null +++ b/game/addons/mat_maker_gd/nodes/filter/tonality.gd @@ -0,0 +1,48 @@ +tool +extends CurveBase + +export(Resource) var image : Resource +export(Resource) var input : Resource + +func _init(): + init_points_01() + +func _init_properties(): + if !input: + input = MMNodeUniversalProperty.new() + input.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_FLOAT + input.set_default_value(0) + + input.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_UNIVERSAL + input.slot_name = ">>> Input " + + if !image: + image = MMNodeUniversalProperty.new() + image.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_IMAGE + + #image.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_FLOAT + image.output_slot_type = MMNodeUniversalProperty.SLOT_TYPE_IMAGE + #image.force_override = true + + register_input_property(input) + register_output_property(image) + +func _register_methods(mm_graph_node) -> void: + mm_graph_node.add_slot_label_universal(input) + mm_graph_node.add_slot_texture_universal(image) + mm_graph_node.add_slot_curve() + +func _render(material) -> void: + var img : Image = render_image(material) + + image.set_value(img) + +func _get_value_for(uv : Vector2, pseed : int) -> Color: + var f : float = input.get_value(uv) + + var cf : float = MMAlgos.curve(f, points_array) + + return Color(cf, cf, cf, 1) + +func _curve_changed() -> void: + set_dirty(true) diff --git a/game/addons/mat_maker_gd/nodes/gradient/circular_gradient.gd b/game/addons/mat_maker_gd/nodes/gradient/circular_gradient.gd new file mode 100644 index 0000000..e1d8561 --- /dev/null +++ b/game/addons/mat_maker_gd/nodes/gradient/circular_gradient.gd @@ -0,0 +1,58 @@ +tool +extends GradientBase + +export(Resource) var image : Resource +export(float) var repeat : float = 1 + +func _init_properties(): + if !image: + image = MMNodeUniversalProperty.new() + image.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_IMAGE + + image.output_slot_type = MMNodeUniversalProperty.SLOT_TYPE_IMAGE + + register_output_property(image) + +func _register_methods(mm_graph_node) -> void: + mm_graph_node.add_slot_texture_universal(image) + mm_graph_node.add_slot_float("get_repeat", "set_repeat", "repeat") + mm_graph_node.add_slot_gradient() + +func _render(material) -> void: + var img : Image = render_image(material) + + image.set_value(img) + +func _get_value_for(uv : Vector2, pseed : int) -> Color: + if interpolation_type == 0: + return MMAlgos.circular_gradient_type_1(uv, repeat, points) + elif interpolation_type == 1: + return MMAlgos.circular_gradient_type_2(uv, repeat, points) + elif interpolation_type == 2: + return MMAlgos.circular_gradient_type_3(uv, repeat, points) + elif interpolation_type == 3: + return MMAlgos.circular_gradient_type_4(uv, repeat, points) + + return Color(1, 1, 1, 1) + + +func _get_gradient_color(x : float) -> Color: + if interpolation_type == 0: + return MMAlgos.gradient_type_1(x, points) + elif interpolation_type == 1: + return MMAlgos.gradient_type_2(x, points) + elif interpolation_type == 2: + return MMAlgos.gradient_type_3(x, points) + elif interpolation_type == 3: + return MMAlgos.gradient_type_4(x, points) + + return Color(1, 1, 1, 1) + +func get_repeat() -> float: + return repeat + +func set_repeat(val : float) -> void: + repeat = val + + set_dirty(true) + diff --git a/game/addons/mat_maker_gd/nodes/gradient/gradient.gd b/game/addons/mat_maker_gd/nodes/gradient/gradient.gd new file mode 100644 index 0000000..42abef7 --- /dev/null +++ b/game/addons/mat_maker_gd/nodes/gradient/gradient.gd @@ -0,0 +1,66 @@ +tool +extends GradientBase + +export(Resource) var image : Resource +export(float) var repeat : float = 1 +export(float) var rotate : float = 0 + +func _init_properties(): + if !image: + image = MMNodeUniversalProperty.new() + image.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_IMAGE + + image.output_slot_type = MMNodeUniversalProperty.SLOT_TYPE_IMAGE + + register_output_property(image) + +func _register_methods(mm_graph_node) -> void: + mm_graph_node.add_slot_texture_universal(image) + mm_graph_node.add_slot_float("get_repeat", "set_repeat", "repeat") + mm_graph_node.add_slot_float("get_rotate", "set_rotate", "rotate") + mm_graph_node.add_slot_gradient() + +func _render(material) -> void: + var img : Image = render_image(material) + + image.set_value(img) + +func _get_value_for(uv : Vector2, pseed : int) -> Color: + if interpolation_type == 0: + return MMAlgos.normal_gradient_type_1(uv, repeat, rotate, points) + elif interpolation_type == 1: + return MMAlgos.normal_gradient_type_2(uv, repeat, rotate, points) + elif interpolation_type == 2: + return MMAlgos.normal_gradient_type_3(uv, repeat, rotate, points) + elif interpolation_type == 3: + return MMAlgos.normal_gradient_type_4(uv, repeat, rotate, points) + + return Color(1, 1, 1, 1) + +func _get_gradient_color(x : float) -> Color: + if interpolation_type == 0: + return MMAlgos.gradient_type_1(x, points) + elif interpolation_type == 1: + return MMAlgos.gradient_type_2(x, points) + elif interpolation_type == 2: + return MMAlgos.gradient_type_3(x, points) + elif interpolation_type == 3: + return MMAlgos.gradient_type_4(x, points) + + return Color(1, 1, 1, 1) + +func get_repeat() -> float: + return repeat + +func set_repeat(val : float) -> void: + repeat = val + + set_dirty(true) + +func get_rotate() -> float: + return rotate + +func set_rotate(val : float) -> void: + rotate = val + + set_dirty(true) diff --git a/game/addons/mat_maker_gd/nodes/gradient/radial_gradient.gd b/game/addons/mat_maker_gd/nodes/gradient/radial_gradient.gd new file mode 100644 index 0000000..8eeed27 --- /dev/null +++ b/game/addons/mat_maker_gd/nodes/gradient/radial_gradient.gd @@ -0,0 +1,58 @@ +tool +extends GradientBase + +export(Resource) var image : Resource +export(float) var repeat : float = 1 + +func _init_properties(): + if !image: + image = MMNodeUniversalProperty.new() + image.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_IMAGE + + image.output_slot_type = MMNodeUniversalProperty.SLOT_TYPE_IMAGE + + register_output_property(image) + +func _register_methods(mm_graph_node) -> void: + mm_graph_node.add_slot_texture_universal(image) + mm_graph_node.add_slot_float("get_repeat", "set_repeat", "repeat") + mm_graph_node.add_slot_gradient() + +func _render(material) -> void: + var img : Image = render_image(material) + + image.set_value(img) + +func _get_value_for(uv : Vector2, pseed : int) -> Color: + if interpolation_type == 0: + return MMAlgos.radial_gradient_type_1(uv, repeat, points) + elif interpolation_type == 1: + return MMAlgos.radial_gradient_type_2(uv, repeat, points) + elif interpolation_type == 2: + return MMAlgos.radial_gradient_type_3(uv, repeat, points) + elif interpolation_type == 3: + return MMAlgos.radial_gradient_type_4(uv, repeat, points) + + return Color(1, 1, 1, 1) + + +func _get_gradient_color(x : float) -> Color: + if interpolation_type == 0: + return MMAlgos.gradient_type_1(x, points) + elif interpolation_type == 1: + return MMAlgos.gradient_type_2(x, points) + elif interpolation_type == 2: + return MMAlgos.gradient_type_3(x, points) + elif interpolation_type == 3: + return MMAlgos.gradient_type_4(x, points) + + return Color(1, 1, 1, 1) + +func get_repeat() -> float: + return repeat + +func set_repeat(val : float) -> void: + repeat = val + + set_dirty(true) + diff --git a/game/addons/mat_maker_gd/nodes/noise/anisotropic_noise.gd b/game/addons/mat_maker_gd/nodes/noise/anisotropic_noise.gd new file mode 100644 index 0000000..80b2945 --- /dev/null +++ b/game/addons/mat_maker_gd/nodes/noise/anisotropic_noise.gd @@ -0,0 +1,58 @@ +tool +extends MMNode + +export(Resource) var image : Resource + +export(Vector2) var scale : Vector2 = Vector2(4, 256) +export(float) var smoothness : float = 1 +export(float) var interpolation : float = 1 + +func _init_properties(): + if !image: + image = MMNodeUniversalProperty.new() + image.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_IMAGE + + image.output_slot_type = MMNodeUniversalProperty.SLOT_TYPE_IMAGE + + register_output_property(image) + +func _register_methods(mm_graph_node) -> void: + mm_graph_node.add_slot_texture_universal(image) + mm_graph_node.add_slot_vector2("get_scale", "set_scale", "Scale", 1)#, Vector2(1, 10)) + mm_graph_node.add_slot_float("get_smoothness", "set_smoothness", "Smoothness", 0.01)#, Vector2(0, 1)) + mm_graph_node.add_slot_float("get_interpolation", "set_interpolation", "Interpolation", 0.01)#, Vector2(0, 1)) + +func _get_value_for(uv : Vector2, pseed : int) -> Color: + var ps : float = 1.0 / float(pseed) + + #anisotropic($(uv), vec2($(scale_x), $(scale_y)), $(seed), $(smoothness), $(interpolation)) + return MMAlgos.anisotropicc(uv, scale, ps, smoothness, interpolation) + +func _render(material) -> void: + var img : Image = render_image(material) + + image.set_value(img) + +func get_scale() -> Vector2: + return scale + +func set_scale(val : Vector2) -> void: + scale = val + + set_dirty(true) + +func get_smoothness() -> float: + return smoothness + +func set_smoothness(val : float) -> void: + smoothness = val + + set_dirty(true) + +func get_interpolation() -> float: + return interpolation + +func set_interpolation(val : float) -> void: + interpolation = val + + set_dirty(true) diff --git a/game/addons/mat_maker_gd/nodes/noise/color_noise.gd b/game/addons/mat_maker_gd/nodes/noise/color_noise.gd new file mode 100644 index 0000000..a6d66f5 --- /dev/null +++ b/game/addons/mat_maker_gd/nodes/noise/color_noise.gd @@ -0,0 +1,50 @@ +tool +extends MMNode + +export(Resource) var image : Resource + +export(int) var size : int = 8 + +#---------------------- +#color_noise.mmg + +#Outputs: + +#Output - (rgb) - Shows the noise pattern +#color_dots($(uv), 1.0/$(size), $(seed)) + +#Inputs: +#size, float, default: 8, min: 2, max: 12, step: 1 + + +func _init_properties(): + if !image: + image = MMNodeUniversalProperty.new() + image.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_IMAGE + + image.output_slot_type = MMNodeUniversalProperty.SLOT_TYPE_IMAGE + + register_output_property(image) + +func _register_methods(mm_graph_node) -> void: + mm_graph_node.add_slot_texture_universal(image) + mm_graph_node.add_slot_int("get_size", "set_size", "Size")#, Vector2(1, 10)) + +func _get_value_for(uv : Vector2, pseed : int) -> Color: + var ps : float = 1.0 / float(pseed) + + #color_dots($(uv), 1.0/$(size), $(seed)) + return MMAlgos.noise_color(uv, float(size), ps) + +func _render(material) -> void: + var img : Image = render_image(material) + + image.set_value(img) + +func get_size() -> int: + return size + +func set_size(val : int) -> void: + size = val + + set_dirty(true) diff --git a/game/addons/mat_maker_gd/nodes/noise/color_value.gd b/game/addons/mat_maker_gd/nodes/noise/color_value.gd new file mode 100644 index 0000000..6bafd58 --- /dev/null +++ b/game/addons/mat_maker_gd/nodes/noise/color_value.gd @@ -0,0 +1,58 @@ +tool +extends MMNode + +export(Resource) var image : Resource + +export(Vector2) var scale : Vector2 = Vector2(4, 4) +export(int) var iterations : int = 3 +export(float) var persistence : float = 0.5 + +func _init_properties(): + if !image: + image = MMNodeUniversalProperty.new() + image.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_IMAGE + + image.output_slot_type = MMNodeUniversalProperty.SLOT_TYPE_IMAGE + + register_output_property(image) + +func _register_methods(mm_graph_node) -> void: + mm_graph_node.add_slot_texture_universal(image) + mm_graph_node.add_slot_vector2("get_scale", "set_scale", "Scale")#, Vector2(1, 10)) + mm_graph_node.add_slot_int("get_iterations", "set_iterations", "Iterations")#, Vector2(0, 1)) + mm_graph_node.add_slot_float("get_persistence", "set_persistence", "Persistence", 0.01)#, Vector2(0, 1)) + +func _get_value_for(uv : Vector2, pseed : int) -> Color: + var ps : float = 1.0 / float(pseed) + + #perlin_color($(uv), vec2($(scale_x), $(scale_y)), int($(iterations)), $(persistence), $(seed)) + return MMAlgos.perlin_colorc(uv, scale, iterations, persistence, ps) + +func _render(material) -> void: + var img : Image = render_image(material) + + image.set_value(img) + +func get_scale() -> Vector2: + return scale + +func set_scale(val : Vector2) -> void: + scale = val + + set_dirty(true) + +func get_iterations() -> int: + return iterations + +func set_iterations(val : int) -> void: + iterations = val + + set_dirty(true) + +func get_persistence() -> float: + return persistence + +func set_persistence(val : float) -> void: + persistence = val + + set_dirty(true) diff --git a/game/addons/mat_maker_gd/nodes/noise/fbm_noise.gd b/game/addons/mat_maker_gd/nodes/noise/fbm_noise.gd new file mode 100644 index 0000000..797fabe --- /dev/null +++ b/game/addons/mat_maker_gd/nodes/noise/fbm_noise.gd @@ -0,0 +1,97 @@ +tool +extends MMNode + +export(Resource) var image : Resource + +export(int, "Value,Perlin,Simplex,Cellular1,Cellular2,Cellular3,Cellular4,Cellular5,Cellular6") var type : int = 0 +export(Vector2) var scale : Vector2 = Vector2(2, 2) +export(int) var folds : int = 0 +export(int) var iterations : int = 5 +export(float) var persistence : float = 0.5 + +func _init_properties(): + if !image: + image = MMNodeUniversalProperty.new() + image.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_IMAGE + + image.output_slot_type = MMNodeUniversalProperty.SLOT_TYPE_IMAGE + + register_output_property(image) + +func _register_methods(mm_graph_node) -> void: + mm_graph_node.add_slot_texture_universal(image) + mm_graph_node.add_slot_enum("get_type", "set_type", "Type", [ "Value", "Perlin", "Simplex", "Cellular1", "Cellular2", "Cellular3", "Cellular4", "Cellular5", "Cellular6" ])#, Vector2(0, 1)) + mm_graph_node.add_slot_vector2("get_scale", "set_scale", "Scale")#, Vector2(1, 10)) + mm_graph_node.add_slot_int("get_folds", "set_folds", "folds")#, Vector2(0, 1)) + mm_graph_node.add_slot_int("get_iterations", "set_iterations", "Iterations")#, Vector2(0, 1)) + mm_graph_node.add_slot_float("get_persistence", "set_persistence", "Persistence", 0.01)#, Vector2(0, 1)) + +func _get_value_for(uv : Vector2, pseed : int) -> Color: + var ps : float = 1.0 / float(pseed) + + #"Value,Perlin,Simplex,Cellular1,Cellular2,Cellular3,Cellular4,Cellular5,Cellular6" + if type == 0: + return MMAlgos.fbmval(uv, scale, folds, iterations, persistence, ps) + elif type == 1: + return MMAlgos.perlin(uv, scale, folds, iterations, persistence, ps) + elif type == 2: + return MMAlgos.simplex(uv, scale, folds, iterations, persistence, ps) + elif type == 3: + return MMAlgos.cellular(uv, scale, folds, iterations, persistence, ps) + elif type == 4: + return MMAlgos.cellular2(uv, scale, folds, iterations, persistence, ps) + elif type == 5: + return MMAlgos.cellular3(uv, scale, folds, iterations, persistence, ps) + elif type == 6: + return MMAlgos.cellular4(uv, scale, folds, iterations, persistence, ps) + elif type == 7: + return MMAlgos.cellular5(uv, scale, folds, iterations, persistence, ps) + elif type == 8: + return MMAlgos.cellular6(uv, scale, folds, iterations, persistence, ps) + + return Color() + +func _render(material) -> void: + var img : Image = render_image(material) + + image.set_value(img) + +func get_type() -> int: + return type + +func set_type(val : int) -> void: + type = val + + set_dirty(true) + +func get_scale() -> Vector2: + return scale + +func set_scale(val : Vector2) -> void: + scale = val + + set_dirty(true) + +func get_folds() -> int: + return folds + +func set_folds(val : int) -> void: + folds = val + + set_dirty(true) + +func get_iterations() -> int: + return iterations + +func set_iterations(val : int) -> void: + iterations = val + + set_dirty(true) + +func get_persistence() -> float: + return persistence + +func set_persistence(val : float) -> void: + persistence = val + + set_dirty(true) diff --git a/game/addons/mat_maker_gd/nodes/noise/noise.gd b/game/addons/mat_maker_gd/nodes/noise/noise.gd new file mode 100644 index 0000000..7c5756e --- /dev/null +++ b/game/addons/mat_maker_gd/nodes/noise/noise.gd @@ -0,0 +1,50 @@ +tool +extends MMNode + +export(Resource) var image : Resource + +export(int) var grid_size : int = 16 +export(float) var density : float = 0.5 + +func _init_properties(): + if !image: + image = MMNodeUniversalProperty.new() + image.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_IMAGE + + image.output_slot_type = MMNodeUniversalProperty.SLOT_TYPE_IMAGE + + register_output_property(image) + +func _register_methods(mm_graph_node) -> void: + mm_graph_node.add_slot_texture_universal(image) + mm_graph_node.add_slot_int("get_grid_size", "set_grid_size", "Grid Size")#, Vector2(1, 10)) + mm_graph_node.add_slot_float("get_density", "set_density", "Density", 0.01)#, Vector2(0, 1)) + +func _get_value_for(uv : Vector2, pseed : int) -> Color: + var ps : float = 1.0 / float(pseed) + + #return dots(uv, 1.0/$(size), $(density), $(seed)); + var f : float = MMAlgos.dots(uv, 1.0 / float(grid_size), density, ps) + + return Color(f, f, f, 1) + +func _render(material) -> void: + var img : Image = render_image(material) + + image.set_value(img) + +func get_grid_size() -> int: + return grid_size + +func set_grid_size(val : int) -> void: + grid_size = val + + set_dirty(true) + +func get_density() -> float: + return density + +func set_density(val : float) -> void: + density = val + + set_dirty(true) diff --git a/game/addons/mat_maker_gd/nodes/noise/voronoi.gd b/game/addons/mat_maker_gd/nodes/noise/voronoi.gd new file mode 100644 index 0000000..8fdf262 --- /dev/null +++ b/game/addons/mat_maker_gd/nodes/noise/voronoi.gd @@ -0,0 +1,160 @@ +tool +extends MMNode + +export(Resource) var out_nodes : Resource +export(Resource) var out_borders : Resource +export(Resource) var out_random_color : Resource +export(Resource) var out_fill : Resource + +export(Vector2) var scale : Vector2 = Vector2(4, 4) +export(Vector2) var stretch : Vector2 = Vector2(1, 1) +export(float) var intensity : float = 1 +export(float) var randomness : float = 0.85 + +func _init_properties(): + if !out_nodes: + out_nodes = MMNodeUniversalProperty.new() + out_nodes.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_IMAGE + + out_nodes.output_slot_type = MMNodeUniversalProperty.SLOT_TYPE_IMAGE + + if !out_borders: + out_borders = MMNodeUniversalProperty.new() + out_borders.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_IMAGE + + out_borders.output_slot_type = MMNodeUniversalProperty.SLOT_TYPE_IMAGE + + if !out_random_color: + out_random_color = MMNodeUniversalProperty.new() + out_random_color.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_IMAGE + + out_random_color.output_slot_type = MMNodeUniversalProperty.SLOT_TYPE_IMAGE + + if !out_fill: + out_fill = MMNodeUniversalProperty.new() + out_fill.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_IMAGE + + out_fill.output_slot_type = MMNodeUniversalProperty.SLOT_TYPE_IMAGE + + register_output_property(out_nodes) + register_output_property(out_borders) + register_output_property(out_random_color) + register_output_property(out_fill) + + +func _register_methods(mm_graph_node) -> void: + mm_graph_node.add_slot_texture_universal(out_nodes) + mm_graph_node.add_slot_texture_universal(out_borders) + mm_graph_node.add_slot_texture_universal(out_random_color) + mm_graph_node.add_slot_texture_universal(out_fill) + + mm_graph_node.add_slot_vector2("get_scale", "set_scale", "Scale", 0.1)#, Vector2(1, 32))#, Vector2(0, 32)) + mm_graph_node.add_slot_vector2("get_stretch", "set_stretch", "stretch", 0.01)#, Vector2(1, 32))#, Vector2(0, 32)) + mm_graph_node.add_slot_float("get_intensity", "set_intensity", "Intensity", 0.01)#, Vector2(1, 32))#, Vector2(0, 32)) + mm_graph_node.add_slot_float("get_randomness", "set_randomness", "Randomness", 0.01)#, Vector2(1, 32))#, Vector2(0, 32)) + + + + +func _render(material) -> void: + var nodes : Image = Image.new() + var borders : Image = Image.new() + var random_color : Image = Image.new() + var fill : Image = Image.new() + + nodes.create(material.image_size.x, material.image_size.y, false, Image.FORMAT_RGBA8) + borders.create(material.image_size.x, material.image_size.y, false, Image.FORMAT_RGBA8) + random_color.create(material.image_size.x, material.image_size.y, false, Image.FORMAT_RGBA8) + fill.create(material.image_size.x, material.image_size.y, false, Image.FORMAT_RGBA8) + + nodes.lock() + borders.lock() + random_color.lock() + fill.lock() + + var w : float = material.image_size.x + var h : float = material.image_size.y + + var pseed : float = randf() + randi() + + for x in range(material.image_size.x): + for y in range(material.image_size.y): + var uv : Vector2 = Vector2(x / w, y / h) + + var ps : float = 1.0 / float(pseed) + + #vec4 $(name_uv)_xyzw = voronoi($uv, vec2($scale_x, $scale_y), vec2($stretch_y, $stretch_x), $intensity, $randomness, $seed); + var voronoi : Color = MMAlgos.voronoi(uv, scale, stretch, intensity, randomness, ps) + + #Nodes - float - A greyscale pattern based on the distance to cell centers + #$(name_uv)_xyzw.z + var nodes_col : Color = Color(voronoi.b, voronoi.b, voronoi.b, 1) + + #Borders - float - A greyscale pattern based on the distance to borders + #$(name_uv)_xyzw.w + var borders_col : Color = Color(voronoi.a, voronoi.a, voronoi.a, 1) + + #Random color - rgb - A color pattern that assigns a random color to each cell + #rand3(fract(floor($(name_uv)_xyzw.xy)/vec2($scale_x, $scale_y))) + var rv3 : Vector3 = MMAlgos.rand3(MMAlgos.fractv2(Vector2(voronoi.r, voronoi.g) / scale)) + var random_color_col : Color = Color(rv3.x, rv3.y, rv3.z, 1) + + #Fill - rgba - An output that should be plugged into a Fill companion node + #vec4(fract(($(name_uv)_xyzw.xy-1.0)/vec2($scale_x, $scale_y)), vec2(2.0)/vec2($scale_x, $scale_y)) + var fv21 : Vector2 = MMAlgos.fractv2((Vector2(voronoi.r, voronoi.g) - Vector2(1, 1)) / scale) + var fv22 : Vector2 = Vector2(2, 2) / scale + var fill_col : Color = Color(fv21.x, fv21.y, fv22.x, fv22.y) + + nodes.set_pixel(x, y, nodes_col) + borders.set_pixel(x, y, borders_col) + random_color.set_pixel(x, y, random_color_col) + fill.set_pixel(x, y, fill_col) + + nodes.unlock() + borders.unlock() + random_color.unlock() + fill.unlock() + + out_nodes.set_value(nodes) + out_borders.set_value(borders) + out_random_color.set_value(random_color) + out_fill.set_value(fill) + +func _get_value_for(uv : Vector2, pseed : int) -> Color: + return Color() + +#scale +func get_scale() -> Vector2: + return scale + +func set_scale(val : Vector2) -> void: + scale = val + + set_dirty(true) + +#stretch +func get_stretch() -> Vector2: + return stretch + +func set_stretch(val : Vector2) -> void: + stretch = val + + set_dirty(true) + +#intensity +func get_intensity() -> float: + return intensity + +func set_intensity(val : float) -> void: + intensity = val + + set_dirty(true) + +#randomness +func get_randomness() -> float: + return randomness + +func set_randomness(val : float) -> void: + randomness = val + + set_dirty(true) diff --git a/game/addons/mat_maker_gd/nodes/other/output_image.gd b/game/addons/mat_maker_gd/nodes/other/output_image.gd new file mode 100644 index 0000000..7003fce --- /dev/null +++ b/game/addons/mat_maker_gd/nodes/other/output_image.gd @@ -0,0 +1,45 @@ +tool +extends MMNode + +export(Resource) var image : Resource + +export(String) var postfix : String = "" + +func _init_properties(): + image = MMNodeUniversalProperty.new() + image.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_IMAGE + image.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_UNIVERSAL + image.slot_name = "image" + + register_input_property(image) + +func _register_methods(mm_graph_node) -> void: + mm_graph_node.add_slot_texture_universal(image) + mm_graph_node.add_slot_line_edit("get_postfix", "set_postfix", "postfix") + +func _render(material) -> void: + if !image: + return + + var img : Image = image.get_active_image() + + if !img: + return + + var matpath : String = material.get_path() + + if matpath == "": + return + + var matbn : String = matpath.get_basename() + var final_file_name : String = matbn + postfix + ".png" + + img.save_png(final_file_name) + +func get_postfix() -> String: + return postfix + +func set_postfix(pf : String) -> void: + postfix = pf + + set_dirty(true) diff --git a/game/addons/mat_maker_gd/nodes/pattern/beehive.gd b/game/addons/mat_maker_gd/nodes/pattern/beehive.gd new file mode 100644 index 0000000..a468d33 --- /dev/null +++ b/game/addons/mat_maker_gd/nodes/pattern/beehive.gd @@ -0,0 +1,110 @@ +tool +extends MMNode + +export(Resource) var out_main : Resource +export(Resource) var out_random_color : Resource +export(Resource) var out_uv_map : Resource + +export(Vector2) var size : Vector2 = Vector2(4, 4) + +func _init_properties(): + if !out_main: + out_main = MMNodeUniversalProperty.new() + out_main.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_IMAGE + + out_main.output_slot_type = MMNodeUniversalProperty.SLOT_TYPE_IMAGE + + if !out_random_color: + out_random_color = MMNodeUniversalProperty.new() + out_random_color.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_IMAGE + + out_random_color.output_slot_type = MMNodeUniversalProperty.SLOT_TYPE_IMAGE + + if !out_uv_map: + out_uv_map = MMNodeUniversalProperty.new() + out_uv_map.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_IMAGE + + out_uv_map.output_slot_type = MMNodeUniversalProperty.SLOT_TYPE_IMAGE + + register_output_property(out_main) + register_output_property(out_random_color) + register_output_property(out_uv_map) + + +func _register_methods(mm_graph_node) -> void: + mm_graph_node.add_slot_texture_universal(out_main) + mm_graph_node.add_slot_texture_universal(out_random_color) + mm_graph_node.add_slot_texture_universal(out_uv_map) + + mm_graph_node.add_slot_vector2("get_size", "set_size", "Size")#, Vector2(1, 32))#, Vector2(0, 32)) + + +func _render(material) -> void: + var main_pattern : Image = Image.new() + var random_color : Image = Image.new() + var uv_map : Image = Image.new() + + main_pattern.create(material.image_size.x, material.image_size.y, false, Image.FORMAT_RGBA8) + random_color.create(material.image_size.x, material.image_size.y, false, Image.FORMAT_RGBA8) + uv_map.create(material.image_size.x, material.image_size.y, false, Image.FORMAT_RGBA8) + + main_pattern.lock() + random_color.lock() + uv_map.lock() + + var w : float = material.image_size.x + var h : float = material.image_size.y + + var pseed : float = randf() + randi() + + for x in range(material.image_size.x): + for y in range(material.image_size.y): + var uv : Vector2 = Vector2(x / w, y / h) + + var ps : float = 1.0 / float(pseed) + + #vec2 $(name_uv)_uv = $uv*vec2($sx, $sy*1.73205080757); + #vec4 $(name_uv)_center = beehive_center($(name_uv)_uv); + var beehive_uv : Vector2 = uv * size; + var beehive_uv_center : Color = MMAlgos.beehive_center(beehive_uv); + + #Output (float) - Shows the greyscale pattern + #1.0-2.0*beehive_dist($(name_uv)_center.xy) + var f : float = 1.0 - 2.0 * MMAlgos.beehive_dist(Vector2(beehive_uv_center.r, beehive_uv_center.g)) + var main_pattern_col : Color = Color(f, f, f, 1) + + #Random color (rgb) - Shows a random color for each hexagonal tile + #rand3(fract($(name_uv)_center.zw/vec2($sx, $sy))+vec2(float($seed))) + var rcv3 : Vector3 = MMAlgos.rand3(MMAlgos.fractv2(Vector2(beehive_uv_center.b, beehive_uv_center.a) / size) + Vector2(ps, ps)) + var random_color_col : Color = Color(rcv3.x, rcv3.y, rcv3.z, 1) + + #UV map (rgb) - Shows an UV map to be connected to the UV map port of the Custom UV node + #vec3(vec2(0.5)+$(name_uv)_center.xy, rand(fract($(name_uv)_center.zw/vec2($sx, $sy))+vec2(float($seed)))) + var uvm1 : Vector2 = Vector2(0.5, 0.5) + Vector2(beehive_uv_center.r, beehive_uv_center.g) + var uvm2 : Vector2 = MMAlgos.rand2(MMAlgos.fractv2(Vector2(beehive_uv_center.b, beehive_uv_center.a) / size) + Vector2(ps, ps)) + + var uv_map_col : Color = Color(uvm1.x, uvm1.y, uvm2.x, 1) + + main_pattern.set_pixel(x, y, main_pattern_col) + random_color.set_pixel(x, y, random_color_col) + uv_map.set_pixel(x, y, uv_map_col) + + main_pattern.unlock() + random_color.unlock() + uv_map.unlock() + + out_main.set_value(main_pattern) + out_random_color.set_value(random_color) + out_uv_map.set_value(uv_map) + +func _get_value_for(uv : Vector2, pseed : int) -> Color: + return Color() + +#size +func get_size() -> Vector2: + return size + +func set_size(val : Vector2) -> void: + size = val + + set_dirty(true) diff --git a/game/addons/mat_maker_gd/nodes/pattern/bricks.gd b/game/addons/mat_maker_gd/nodes/pattern/bricks.gd new file mode 100644 index 0000000..3ee396f --- /dev/null +++ b/game/addons/mat_maker_gd/nodes/pattern/bricks.gd @@ -0,0 +1,286 @@ +tool +extends MMNode + +export(Resource) var out_bricks_pattern : Resource +export(Resource) var out_random_color : Resource +export(Resource) var out_position_x : Resource +export(Resource) var out_position_y : Resource +export(Resource) var out_brick_uv : Resource +export(Resource) var out_corner_uv : Resource +export(Resource) var out_direction : Resource + +export(int, "Running Bond,Running Bond (2),HerringBone,Basket Weave,Spanish Bond") var type : int = 0 +export(int) var repeat : int = 1 +export(Vector2) var col_row : Vector2 = Vector2(4, 4) +export(float) var offset : float = 0.5 +export(Resource) var mortar : Resource +export(Resource) var bevel : Resource +export(Resource) var roundness : Resource +export(float) var corner : float = 0.3 + +func _init_properties(): + if !out_bricks_pattern: + out_bricks_pattern = MMNodeUniversalProperty.new() + out_bricks_pattern.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_IMAGE + + out_bricks_pattern.output_slot_type = MMNodeUniversalProperty.SLOT_TYPE_IMAGE + + if !out_random_color: + out_random_color = MMNodeUniversalProperty.new() + out_random_color.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_IMAGE + + out_random_color.output_slot_type = MMNodeUniversalProperty.SLOT_TYPE_IMAGE + + if !out_position_x: + out_position_x = MMNodeUniversalProperty.new() + out_position_x.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_IMAGE + + out_position_x.output_slot_type = MMNodeUniversalProperty.SLOT_TYPE_IMAGE + + if !out_position_y: + out_position_y = MMNodeUniversalProperty.new() + out_position_y.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_IMAGE + + out_position_y.output_slot_type = MMNodeUniversalProperty.SLOT_TYPE_IMAGE + + if !out_brick_uv: + out_brick_uv = MMNodeUniversalProperty.new() + out_brick_uv.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_IMAGE + + out_brick_uv.output_slot_type = MMNodeUniversalProperty.SLOT_TYPE_IMAGE + + if !out_corner_uv: + out_corner_uv = MMNodeUniversalProperty.new() + out_corner_uv.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_IMAGE + + out_corner_uv.output_slot_type = MMNodeUniversalProperty.SLOT_TYPE_IMAGE + + if !out_direction: + out_direction = MMNodeUniversalProperty.new() + out_direction.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_IMAGE + + out_direction.output_slot_type = MMNodeUniversalProperty.SLOT_TYPE_IMAGE + + if !mortar: + mortar = MMNodeUniversalProperty.new() + mortar.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_FLOAT + mortar.set_default_value(0.1) + + mortar.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_UNIVERSAL + mortar.slot_name = "Mortar" + mortar.value_step = 0.01 + mortar.value_range = Vector2(0, 0.5) + + if !bevel: + bevel = MMNodeUniversalProperty.new() + bevel.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_FLOAT + bevel.set_default_value(0.1) + + bevel.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_UNIVERSAL + bevel.slot_name = "Bevel" + bevel.value_step = 0.01 + bevel.value_range = Vector2(0, 0.5) + + if !roundness: + roundness = MMNodeUniversalProperty.new() + roundness.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_FLOAT + roundness.set_default_value(0.1) + + roundness.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_UNIVERSAL + roundness.slot_name = "Roundness" + roundness.value_step = 0.01 + roundness.value_range = Vector2(0, 0.5) + + register_output_property(out_bricks_pattern) + register_output_property(out_random_color) + register_output_property(out_position_x) + register_output_property(out_position_y) + register_output_property(out_brick_uv) + register_output_property(out_corner_uv) + register_output_property(out_direction) + + register_input_property(mortar) + register_input_property(bevel) + register_input_property(roundness) + + +func _register_methods(mm_graph_node) -> void: + mm_graph_node.add_slot_texture_universal(out_bricks_pattern) + mm_graph_node.add_slot_texture_universal(out_random_color) + mm_graph_node.add_slot_texture_universal(out_position_x) + mm_graph_node.add_slot_texture_universal(out_position_y) + mm_graph_node.add_slot_texture_universal(out_brick_uv) + mm_graph_node.add_slot_texture_universal(out_corner_uv) + mm_graph_node.add_slot_texture_universal(out_direction) + + mm_graph_node.add_slot_enum("get_type", "set_type", "Type", [ "Running Bond", "Running Bond (2)", "HerringBone", "Basket Weave", "Spanish Bond" ]) + mm_graph_node.add_slot_int("get_repeat", "set_repeat", "Repeat") + + mm_graph_node.add_slot_vector2("get_col_row", "set_col_row", "Col, Row")#, Vector2(1, 32))#, Vector2(0, 32)) + mm_graph_node.add_slot_float("get_offset", "set_offset", "Offset") + + mm_graph_node.add_slot_float_universal(mortar) + mm_graph_node.add_slot_float_universal(bevel) + mm_graph_node.add_slot_float_universal(roundness) + + mm_graph_node.add_slot_float("get_corner", "set_corner", "Corner") + +func _render(material) -> void: + var bricks_pattern : Image = Image.new() + var random_color : Image = Image.new() + var position_x : Image = Image.new() + var position_y : Image = Image.new() + var brick_uv : Image = Image.new() + var corner_uv : Image = Image.new() + var direction : Image = Image.new() + + bricks_pattern.create(material.image_size.x, material.image_size.y, false, Image.FORMAT_RGBA8) + random_color.create(material.image_size.x, material.image_size.y, false, Image.FORMAT_RGBA8) + position_x.create(material.image_size.x, material.image_size.y, false, Image.FORMAT_RGBA8) + position_y.create(material.image_size.x, material.image_size.y, false, Image.FORMAT_RGBA8) + brick_uv.create(material.image_size.x, material.image_size.y, false, Image.FORMAT_RGBA8) + corner_uv.create(material.image_size.x, material.image_size.y, false, Image.FORMAT_RGBA8) + direction.create(material.image_size.x, material.image_size.y, false, Image.FORMAT_RGBA8) + + bricks_pattern.lock() + random_color.lock() + position_x.lock() + position_y.lock() + brick_uv.lock() + corner_uv.lock() + direction.lock() + + var w : float = material.image_size.x + var h : float = material.image_size.y + + var pseed : float = randf() + randi() + + for x in range(material.image_size.x): + for y in range(material.image_size.y): + var uv : Vector2 = Vector2(x / w, y / h) + + #vec4 $(name_uv)_rect = bricks_$pattern($uv, vec2($columns, $rows), $repeat, $row_offset); + var brick_rect : Color = Color() + + #"Running Bond,Running Bond (2),HerringBone,Basket Weave,Spanish Bond" + + if type == 0: + brick_rect = MMAlgos.bricks_rb(uv, col_row, repeat, offset) + elif type == 1: + brick_rect = MMAlgos.bricks_rb2(uv, col_row, repeat, offset) + elif type == 2: + brick_rect = MMAlgos.bricks_hb(uv, col_row, repeat, offset) + elif type == 3: + brick_rect = MMAlgos.bricks_bw(uv, col_row, repeat, offset) + elif type == 4: + brick_rect = MMAlgos.bricks_sb(uv, col_row, repeat, offset) + + + #vec4 $(name_uv) = brick($uv, $(name_uv)_rect.xy, $(name_uv)_rect.zw, $mortar*$mortar_map($uv), $round*$round_map($uv), max(0.001, $bevel*$bevel_map($uv))); + var brick : Color = MMAlgos.brick(uv, Vector2(brick_rect.r, brick_rect.g), Vector2(brick_rect.b, brick_rect.a), mortar.get_value(uv), roundness.get_value(uv), max(0.001, bevel.get_value(uv))) + + #Bricks pattern (float) - A greyscale image that shows the bricks pattern + #$(name_uv).x + var bricks_pattern_col : Color = Color(brick.r, brick.r, brick.r, 1) + + #Random color (rgb) - A random color for each brick + #brick_random_color($(name_uv)_rect.xy, $(name_uv)_rect.zw, float($seed)) + var brc : Vector3 = MMAlgos.brick_random_color(Vector2(brick_rect.r, brick_rect.g), Vector2(brick_rect.b, brick_rect.a), 1 / float(pseed)) + var random_color_col : Color = Color(brc.x, brc.y, brc.z, 1) + + #Position.x (float) - The position of each brick along the X axis", + #$(name_uv).y + var position_x_col : Color = Color(brick.g, brick.g, brick.g, 1) + + #Position.y (float) - The position of each brick along the Y axis + #$(name_uv).z + var position_y_col : Color = Color(brick.b, brick.b, brick.b, 1) + + #Brick UV (rgb) - An UV map output for each brick, to be connected to the Map input of a CustomUV node + #brick_uv($uv, $(name_uv)_rect.xy, $(name_uv)_rect.zw, float($seed)) + var buv : Vector3 = MMAlgos.brick_uv(uv, Vector2(brick_rect.r, brick_rect.g), Vector2(brick_rect.b, brick_rect.a), pseed) + var brick_uv_col : Color = Color(buv.x, buv.y, buv.z, 1) + + #Corner UV (rgb) - An UV map output for each brick corner, to be connected to the Map input of a CustomUV node + #brick_corner_uv($uv, $(name_uv)_rect.xy, $(name_uv)_rect.zw, $mortar*$mortar_map($uv), $corner, float($seed)) + var bcuv : Vector3 = MMAlgos.brick_corner_uv(uv, Vector2(brick_rect.r, brick_rect.g), Vector2(brick_rect.b, brick_rect.a), mortar.get_value(uv), corner, pseed) + var corner_uv_col : Color = Color(bcuv.x, bcuv.y, bcuv.z, 1) + + #Direction (float) - The direction of each brick (white: horizontal, black: vertical) + #0.5*(sign($(name_uv)_rect.z-$(name_uv)_rect.x-$(name_uv)_rect.w+$(name_uv)_rect.y)+1.0) + var d : float = 0.5 * (sign(brick_rect.b - brick_rect.r - brick_rect.a + brick_rect.g) + 1.0) + var direction_col : Color = Color(d, d, d, 1) + + bricks_pattern.set_pixel(x, y, bricks_pattern_col) + random_color.set_pixel(x, y, random_color_col) + position_x.set_pixel(x, y, position_x_col) + position_y.set_pixel(x, y, position_y_col) + brick_uv.set_pixel(x, y, brick_uv_col) + corner_uv.set_pixel(x, y, corner_uv_col) + direction.set_pixel(x, y, direction_col) + + bricks_pattern.unlock() + random_color.unlock() + position_x.unlock() + position_y.unlock() + brick_uv.unlock() + corner_uv.unlock() + direction.unlock() + + out_bricks_pattern.set_value(bricks_pattern) + out_random_color.set_value(random_color) + out_position_x.set_value(position_x) + out_position_y.set_value(position_y) + out_brick_uv.set_value(brick_uv) + out_corner_uv.set_value(corner_uv) + out_direction.set_value(direction) + +func _get_value_for(uv : Vector2, pseed : int) -> Color: + return Color() + +#type +func get_type() -> int: + return type + +func set_type(val : int) -> void: + type = val + + set_dirty(true) + +#repeat +func get_repeat() -> int: + return repeat + +func set_repeat(val : int) -> void: + repeat = val + + set_dirty(true) + +#col_row +func get_col_row() -> Vector2: + return col_row + +func set_col_row(val : Vector2) -> void: + col_row = val + + set_dirty(true) + +#offset +func get_offset() -> float: + return offset + +func set_offset(val : float) -> void: + offset = val + + set_dirty(true) + +#corner +func get_corner() -> float: + return corner + +func set_corner(val : float) -> void: + corner = val + + set_dirty(true) + + diff --git a/game/addons/mat_maker_gd/nodes/pattern/iching.gd b/game/addons/mat_maker_gd/nodes/pattern/iching.gd new file mode 100644 index 0000000..eacc243 --- /dev/null +++ b/game/addons/mat_maker_gd/nodes/pattern/iching.gd @@ -0,0 +1,38 @@ +tool +extends MMNode + +export(Resource) var image : Resource +export(Vector2) var size : Vector2 = Vector2(4, 4) + +func _init_properties(): + if !image: + image = MMNodeUniversalProperty.new() + image.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_IMAGE + + image.output_slot_type = MMNodeUniversalProperty.SLOT_TYPE_IMAGE + + register_output_property(image) + +func _register_methods(mm_graph_node) -> void: + mm_graph_node.add_slot_texture_universal(image) + mm_graph_node.add_slot_vector2("get_size", "set_size", "Size", 1) + +func _render(material) -> void: + var img : Image = render_image(material) + + image.set_value(img) + +func _get_value_for(uv : Vector2, pseed : int) -> Color: + var ps : float = 1.0 / float(pseed) + + #IChing(vec2($columns, $rows)*$uv, float($seed)) + return MMAlgos.IChingc(uv, size, ps) + +#size +func get_size() -> Vector2: + return size + +func set_size(val : Vector2) -> void: + size = val + + set_dirty(true) diff --git a/game/addons/mat_maker_gd/nodes/pattern/pattern.gd b/game/addons/mat_maker_gd/nodes/pattern/pattern.gd new file mode 100644 index 0000000..fe98d78 --- /dev/null +++ b/game/addons/mat_maker_gd/nodes/pattern/pattern.gd @@ -0,0 +1,70 @@ +tool +extends MMNode + +export(Resource) var image : Resource +export(int, "Multiply,Add,Max,Min,Xor,Pow") var combiner_type : int = 0 +export(int, "Sine,Triangle,Square,Sawtooth,Constant,Bounce") var combiner_axis_type_x : int = 0 +export(int, "Sine,Triangle,Square,Sawtooth,Constant,Bounce") var combiner_axis_type_y : int = 0 +export(Vector2) var repeat : Vector2 = Vector2(4, 4) + +func _init_properties(): + if !image: + image = MMNodeUniversalProperty.new() + image.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_IMAGE + + image.output_slot_type = MMNodeUniversalProperty.SLOT_TYPE_IMAGE + + register_output_property(image) + +func _register_methods(mm_graph_node) -> void: + mm_graph_node.add_slot_texture_universal(image) + mm_graph_node.add_slot_enum("get_combiner_type", "set_combiner_type", "Combiner Type", [ "Multiply", "Add" , "Max", "Min", "Xor", "Pow" ]) + mm_graph_node.add_slot_enum("get_combiner_axis_type_x", "set_combiner_axis_type_x", "Combiner Axis type", [ "Sine", "Triangle", "Square", "Sawtooth", "Constant", "Bounce" ]) + mm_graph_node.add_slot_enum("get_combiner_axis_type_y", "set_combiner_axis_type_y", "", [ "Sine", "Triangle", "Square", "Sawtooth", "Constant", "Bounce" ]) + mm_graph_node.add_slot_vector2("get_repeat", "set_repeat", "Repeat", 1)#, Vector2(0, 32)) + +func _render(material) -> void: + var img : Image = render_image(material) + + image.set_value(img) + +func _get_value_for(uv : Vector2, pseed : int) -> Color: + var f : float = MMAlgos.pattern(uv, repeat.x, repeat.y, combiner_type, combiner_axis_type_x, combiner_axis_type_y) + + return Color(f, f, f, 1) + +#combiner_type +func get_combiner_type() -> int: + return combiner_type + +func set_combiner_type(val : int) -> void: + combiner_type = val + + set_dirty(true) + +#combiner_axis_type_x +func get_combiner_axis_type_x() -> int: + return combiner_axis_type_x + +func set_combiner_axis_type_x(val : int) -> void: + combiner_axis_type_x = val + + set_dirty(true) + +#combiner_axis_type_y +func get_combiner_axis_type_y() -> int: + return combiner_axis_type_y + +func set_combiner_axis_type_y(val : int) -> void: + combiner_axis_type_y = val + + set_dirty(true) + +#repeat +func get_repeat() -> Vector2: + return repeat + +func set_repeat(val : Vector2) -> void: + repeat = val + + set_dirty(true) diff --git a/game/addons/mat_maker_gd/nodes/pattern/runes.gd b/game/addons/mat_maker_gd/nodes/pattern/runes.gd new file mode 100644 index 0000000..90aadeb --- /dev/null +++ b/game/addons/mat_maker_gd/nodes/pattern/runes.gd @@ -0,0 +1,38 @@ +tool +extends MMNode + +export(Resource) var image : Resource +export(Vector2) var size : Vector2 = Vector2(4, 4) + +func _init_properties(): + if !image: + image = MMNodeUniversalProperty.new() + image.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_IMAGE + + image.output_slot_type = MMNodeUniversalProperty.SLOT_TYPE_IMAGE + + register_output_property(image) + +func _register_methods(mm_graph_node) -> void: + mm_graph_node.add_slot_texture_universal(image) + mm_graph_node.add_slot_vector2("get_size", "set_size", "Size", 1) + +func _render(material) -> void: + var img : Image = render_image(material) + + image.set_value(img) + +func _get_value_for(uv : Vector2, pseed : int) -> Color: + var ps : float = 1.0 / float(pseed) + + #Rune(vec2($columns, $rows)*$uv, float($seed)) + return MMAlgos.runesc(uv, size, ps) + +#size +func get_size() -> Vector2: + return size + +func set_size(val : Vector2) -> void: + size = val + + set_dirty(true) diff --git a/game/addons/mat_maker_gd/nodes/pattern/scratches.gd b/game/addons/mat_maker_gd/nodes/pattern/scratches.gd new file mode 100644 index 0000000..6e92151 --- /dev/null +++ b/game/addons/mat_maker_gd/nodes/pattern/scratches.gd @@ -0,0 +1,80 @@ +tool +extends MMNode + +export(Resource) var image : Resource +export(Vector2) var size : Vector2 = Vector2(0.25, 0.4) +export(int) var layers : int = 4 +export(float) var waviness : float = 0.51 +export(int) var angle : int = 0 +export(float) var randomness : float = 0.44 + +func _init_properties(): + if !image: + image = MMNodeUniversalProperty.new() + image.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_IMAGE + + image.output_slot_type = MMNodeUniversalProperty.SLOT_TYPE_IMAGE + + register_output_property(image) + +func _register_methods(mm_graph_node) -> void: + mm_graph_node.add_slot_texture_universal(image) + mm_graph_node.add_slot_vector2("get_size", "set_size", "Size", 0.01) + mm_graph_node.add_slot_int("get_layers", "set_layers", "Layers") + mm_graph_node.add_slot_float("get_waviness", "set_waviness", "Waviness", 0.01) + mm_graph_node.add_slot_int("get_angle", "set_angle", "Angle") + mm_graph_node.add_slot_float("get_randomness", "set_randomness", "Randomness", 0.01) + +func _render(material) -> void: + var img : Image = render_image(material) + + image.set_value(img) + +func _get_value_for(uv : Vector2, pseed : int) -> Color: + #scratches($uv, int($layers), vec2($length, $width), $waviness, $angle, $randomness, vec2(float($seed), 0.0)) + return MMAlgos.scratchesc(uv, layers, size, waviness, angle, randomness, Vector2(pseed, 0.0)) + +#size +func get_size() -> Vector2: + return size + +func set_size(val : Vector2) -> void: + size = val + + set_dirty(true) + +#layers +func get_layers() -> int: + return layers + +func set_layers(val : int) -> void: + layers = val + + set_dirty(true) + +#waviness +func get_waviness() -> float: + return waviness + +func set_waviness(val : float) -> void: + waviness = val + + set_dirty(true) + +#angle +func get_angle() -> int: + return angle + +func set_angle(val : int) -> void: + angle = val + + set_dirty(true) + +#randomness +func get_randomness() -> float: + return randomness + +func set_randomness(val : float) -> void: + randomness = val + + set_dirty(true) diff --git a/game/addons/mat_maker_gd/nodes/pattern/sine_wave.gd b/game/addons/mat_maker_gd/nodes/pattern/sine_wave.gd new file mode 100644 index 0000000..28f852b --- /dev/null +++ b/game/addons/mat_maker_gd/nodes/pattern/sine_wave.gd @@ -0,0 +1,59 @@ +tool +extends MMNode + +export(Resource) var image : Resource +export(float) var amplitude : float = 0.5 +export(float) var frequency : float = 2 +export(float) var phase : float = 0 + +func _init_properties(): + if !image: + image = MMNodeUniversalProperty.new() + image.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_IMAGE + + image.output_slot_type = MMNodeUniversalProperty.SLOT_TYPE_IMAGE + + register_output_property(image) + +func _register_methods(mm_graph_node) -> void: + mm_graph_node.add_slot_texture_universal(image) + mm_graph_node.add_slot_float("get_amplitude", "set_amplitude", "Amplitude", 0.01) + mm_graph_node.add_slot_float("get_frequency", "set_frequency", "Frequency", 0.1) + mm_graph_node.add_slot_float("get_phase", "set_phase", "Phase", 0.01) + +func _render(material) -> void: + var img : Image = render_image(material) + + image.set_value(img) + +func _get_value_for(uv : Vector2, pseed : int) -> Color: + var f : float = 1.0 - abs(2.0 * (uv.y - 0.5) - amplitude *sin((frequency * uv.x + phase)*6.28318530718)) + + return Color(f, f, f, 1) + +#amplitude +func get_amplitude() -> float: + return amplitude + +func set_amplitude(val : float) -> void: + amplitude = val + + set_dirty(true) + +#frequency +func get_frequency() -> float: + return frequency + +func set_frequency(val : float) -> void: + frequency = val + + set_dirty(true) + +#phase +func get_phase() -> float: + return phase + +func set_phase(val : float) -> void: + phase = val + + set_dirty(true) diff --git a/game/addons/mat_maker_gd/nodes/pattern/truchet.gd b/game/addons/mat_maker_gd/nodes/pattern/truchet.gd new file mode 100644 index 0000000..cb986c1 --- /dev/null +++ b/game/addons/mat_maker_gd/nodes/pattern/truchet.gd @@ -0,0 +1,51 @@ +tool +extends MMNode + +export(Resource) var image : Resource +export(int, "Line,Circle") var shape : int = 0 +export(float) var size : float = 4 + +func _init_properties(): + if !image: + image = MMNodeUniversalProperty.new() + image.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_IMAGE + + image.output_slot_type = MMNodeUniversalProperty.SLOT_TYPE_IMAGE + + register_output_property(image) + +func _register_methods(mm_graph_node) -> void: + mm_graph_node.add_slot_texture_universal(image) + mm_graph_node.add_slot_enum("get_shape", "set_shape", "Shape", [ "Line", "Circle" ]) + mm_graph_node.add_slot_float("get_size", "set_size", "Size", 1) + +func _render(material) -> void: + var img : Image = render_image(material) + + image.set_value(img) + +func _get_value_for(uv : Vector2, pseed : int) -> Color: + if shape == 0: + return MMAlgos.truchet1c(uv, size, pseed) + elif shape == 1: + return MMAlgos.truchet2c(uv, size, pseed) + + return Color() + +#shape +func get_shape() -> int: + return shape + +func set_shape(val : int) -> void: + shape = val + + set_dirty(true) + +#size +func get_size() -> float: + return size + +func set_size(val : float) -> void: + size = val + + set_dirty(true) diff --git a/game/addons/mat_maker_gd/nodes/pattern/weave.gd b/game/addons/mat_maker_gd/nodes/pattern/weave.gd new file mode 100644 index 0000000..0a0e432 --- /dev/null +++ b/game/addons/mat_maker_gd/nodes/pattern/weave.gd @@ -0,0 +1,132 @@ +tool +extends MMNode + +export(Resource) var out_main : Resource +export(Resource) var out_horizontal_map : Resource +export(Resource) var out_vertical_map : Resource + +export(Vector2) var size : Vector2 = Vector2(4, 4) +export(Resource) var width : Resource +export(int) var stitch : int = 1 + +func _init_properties(): + if !out_main: + out_main = MMNodeUniversalProperty.new() + out_main.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_IMAGE + + out_main.output_slot_type = MMNodeUniversalProperty.SLOT_TYPE_IMAGE + + if !out_horizontal_map: + out_horizontal_map = MMNodeUniversalProperty.new() + out_horizontal_map.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_IMAGE + + out_horizontal_map.output_slot_type = MMNodeUniversalProperty.SLOT_TYPE_IMAGE + + if !out_vertical_map: + out_vertical_map = MMNodeUniversalProperty.new() + out_vertical_map.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_IMAGE + + out_vertical_map.output_slot_type = MMNodeUniversalProperty.SLOT_TYPE_IMAGE + + if !width: + width = MMNodeUniversalProperty.new() + width.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_VECTOR2 + width.set_default_value(Vector2(0.9, 0.9)) + + width.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_UNIVERSAL + width.slot_name = "Width" + width.value_step = 0.01 + width.value_range = Vector2(0, 1) + + register_output_property(out_main) + register_output_property(out_horizontal_map) + register_output_property(out_vertical_map) + + register_input_property(width) + + +func _register_methods(mm_graph_node) -> void: + mm_graph_node.add_slot_texture_universal(out_main) + mm_graph_node.add_slot_texture_universal(out_horizontal_map) + mm_graph_node.add_slot_texture_universal(out_vertical_map) + + mm_graph_node.add_slot_vector2("get_size", "set_size", "Size")#, Vector2(1, 32))#, Vector2(0, 32)) + mm_graph_node.add_slot_vector2_universal(width) + + mm_graph_node.add_slot_int("get_stitch", "set_stitch", "Stitch") + + +func _render(material) -> void: + var main_pattern : Image = Image.new() + var horizontal_map : Image = Image.new() + var vertical_map : Image = Image.new() + + main_pattern.create(material.image_size.x, material.image_size.y, false, Image.FORMAT_RGBA8) + horizontal_map.create(material.image_size.x, material.image_size.y, false, Image.FORMAT_RGBA8) + vertical_map.create(material.image_size.x, material.image_size.y, false, Image.FORMAT_RGBA8) + + main_pattern.lock() + horizontal_map.lock() + vertical_map.lock() + + var w : float = material.image_size.x + var h : float = material.image_size.y + + var pseed : float = randf() + randi() + + for x in range(material.image_size.x): + for y in range(material.image_size.y): + var uv : Vector2 = Vector2(x / w, y / h) + + var width_val : Vector2 = width.get_value(uv) + + #vec3 $(name_uv) = weave2($uv, vec2($columns, $rows), $stitch, $width_x*$width_map($uv), $width_y*$width_map($uv)); + var weave : Vector3 = MMAlgos.weave2(uv, size, stitch, width_val.x, width_val.y); + + #Outputs: + + #Output (float) - Shows the generated greyscale weave pattern. + #$(name_uv).x + var main_pattern_col : Color = Color(weave.x, weave.x, weave.x, 1) + + #Horizontal mask (float) - Horizontal mask + #$(name_uv).y + var horizontal_map_col : Color = Color(weave.y, weave.y, weave.y, 1) + + #Vertical mask (float) - Mask for vertical stripes + #$(name_uv).z + var vertical_map_col : Color = Color(weave.z, weave.z, weave.z, 1) + + main_pattern.set_pixel(x, y, main_pattern_col) + horizontal_map.set_pixel(x, y, horizontal_map_col) + vertical_map.set_pixel(x, y, vertical_map_col) + + main_pattern.unlock() + horizontal_map.unlock() + vertical_map.unlock() + + out_main.set_value(main_pattern) + out_horizontal_map.set_value(horizontal_map) + out_vertical_map.set_value(vertical_map) + +func _get_value_for(uv : Vector2, pseed : int) -> Color: + return Color() + +#size +func get_size() -> Vector2: + return size + +func set_size(val : Vector2) -> void: + size = val + + set_dirty(true) + +#stitch +func get_stitch() -> int: + return stitch + +func set_stitch(val : int) -> void: + stitch = val + + set_dirty(true) + diff --git a/game/addons/mat_maker_gd/nodes/sdf2d/sd_op_annular_shape.gd b/game/addons/mat_maker_gd/nodes/sdf2d/sd_op_annular_shape.gd new file mode 100644 index 0000000..c5daf67 --- /dev/null +++ b/game/addons/mat_maker_gd/nodes/sdf2d/sd_op_annular_shape.gd @@ -0,0 +1,51 @@ +tool +extends MMNode + +export(Resource) var output : Resource +export(float) var width : float = 0.1 +export(int) var ripples : int = 1 + +func _init_properties(): + if !output: + output = MMNodeUniversalProperty.new() + output.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_FLOAT + + output.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_UNIVERSAL + output.output_slot_type = MMNodeUniversalProperty.SLOT_TYPE_UNIVERSAL + #output.output_slot_type = MMNodeUniversalProperty.SLOT_TYPE_FLOAT + output.slot_name = ">>> Apply >>>" + output.get_value_from_owner = true + + register_input_property(output) + register_output_property(output) + +func _register_methods(mm_graph_node) -> void: + mm_graph_node.add_slot_label_universal(output) + + mm_graph_node.add_slot_float("get_width", "set_width", "Width", 0.01) + mm_graph_node.add_slot_int("get_ripples", "set_ripples", "Ripples") + +func _get_property_value(uv : Vector2): + var val : float = output.get_value(uv, true) + + return MMAlgos.sdRipples(val, width, ripples) + +#width +func get_width() -> float: + return width + +func set_width(val : float) -> void: + width = val + + emit_changed() + output.emit_changed() + +#ripples +func get_ripples() -> int: + return ripples + +func set_ripples(val : int) -> void: + ripples = val + + emit_changed() + output.emit_changed() diff --git a/game/addons/mat_maker_gd/nodes/sdf2d/sd_op_bool.gd b/game/addons/mat_maker_gd/nodes/sdf2d/sd_op_bool.gd new file mode 100644 index 0000000..9879f36 --- /dev/null +++ b/game/addons/mat_maker_gd/nodes/sdf2d/sd_op_bool.gd @@ -0,0 +1,73 @@ +tool +extends MMNode + +export(Resource) var input1 : Resource +export(Resource) var input2 : Resource +export(Resource) var output : Resource +export(int, "Union,Substraction,Intersection") var operation : int = 0 + +func _init_properties(): + if !input1: + input1 = MMNodeUniversalProperty.new() + input1.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_FLOAT + + input1.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_UNIVERSAL +# input1.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_FLOAT + input1.slot_name = ">>> Input 1 " + if !input1.is_connected("changed", self, "on_input_changed"): + input1.connect("changed", self, "on_input_changed") + + if !input2: + input2 = MMNodeUniversalProperty.new() + input2.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_FLOAT + + input2.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_UNIVERSAL +# input2.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_FLOAT + input2.slot_name = ">>> Input 2 " + + if !input2.is_connected("changed", self, "on_input_changed"): + input2.connect("changed", self, "on_input_changed") + + if !output: + output = MMNodeUniversalProperty.new() + output.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_FLOAT + + output.output_slot_type = MMNodeUniversalProperty.SLOT_TYPE_UNIVERSAL +# output.output_slot_type = MMNodeUniversalProperty.SLOT_TYPE_FLOAT + output.slot_name = " Output >>>" + output.get_value_from_owner = true + + register_input_property(input1) + register_input_property(input2) + register_output_property(output) + +func _register_methods(mm_graph_node) -> void: + mm_graph_node.add_slot_label_universal(input1) + mm_graph_node.add_slot_label_universal(input2) + mm_graph_node.add_slot_label_universal(output) + + mm_graph_node.add_slot_enum("get_operation", "set_operation", "Operation", [ "Union", "Substraction", "Intersection" ]) + +func _get_property_value(uv : Vector2) -> float: + if operation == 0: + return MMAlgos.sdf_boolean_union(input1.get_value(uv), input2.get_value(uv)) + elif operation == 1: + return MMAlgos.sdf_boolean_substraction(input1.get_value(uv), input2.get_value(uv)) + elif operation == 2: + return MMAlgos.sdf_boolean_intersection(input1.get_value(uv), input2.get_value(uv)) + + return 0.0 + +#operation +func get_operation() -> int: + return operation + +func set_operation(val : int) -> void: + operation = val + + emit_changed() + output.emit_changed() + +func on_input_changed() -> void: + emit_changed() + output.emit_changed() diff --git a/game/addons/mat_maker_gd/nodes/sdf2d/sd_op_circle_repeat.gd b/game/addons/mat_maker_gd/nodes/sdf2d/sd_op_circle_repeat.gd new file mode 100644 index 0000000..d682b96 --- /dev/null +++ b/game/addons/mat_maker_gd/nodes/sdf2d/sd_op_circle_repeat.gd @@ -0,0 +1,41 @@ +tool +extends MMNode + +export(Resource) var output : Resource +export(int) var count : int = 6 + +func _init_properties(): + if !output: + output = MMNodeUniversalProperty.new() + output.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_FLOAT + + output.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_UNIVERSAL + output.output_slot_type = MMNodeUniversalProperty.SLOT_TYPE_UNIVERSAL + #output.output_slot_type = MMNodeUniversalProperty.SLOT_TYPE_FLOAT + output.slot_name = ">>> Apply >>>" + output.get_value_from_owner = true + + register_input_property(output) + register_output_property(output) + +func _register_methods(mm_graph_node) -> void: + mm_graph_node.add_slot_label_universal(output) + + mm_graph_node.add_slot_int("get_count", "set_count", "Count") + +func _get_property_value(uv : Vector2): + #$in(circle_repeat_transform_2d($uv-vec2(0.5), $c)+vec2(0.5)) + var new_uv : Vector2 = MMAlgos.circle_repeat_transform_2d(uv - Vector2(0.5, 0.5), count) + Vector2(0.5, 0.5) + + return output.get_value(new_uv, true) + +#count +func get_count() -> int: + return count + +func set_count(val : int) -> void: + count = val + + emit_changed() + output.emit_changed() + diff --git a/game/addons/mat_maker_gd/nodes/sdf2d/sd_op_morph.gd b/game/addons/mat_maker_gd/nodes/sdf2d/sd_op_morph.gd new file mode 100644 index 0000000..53547f0 --- /dev/null +++ b/game/addons/mat_maker_gd/nodes/sdf2d/sd_op_morph.gd @@ -0,0 +1,66 @@ +tool +extends MMNode + +export(Resource) var input1 : Resource +export(Resource) var input2 : Resource +export(Resource) var output : Resource +export(float) var amount : float = 0.5 + +func _init_properties(): + if !input1: + input1 = MMNodeUniversalProperty.new() + input1.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_FLOAT + + input1.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_UNIVERSAL +# input1.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_FLOAT + input1.slot_name = ">>> Input 1 " + if !input1.is_connected("changed", self, "on_input_changed"): + input1.connect("changed", self, "on_input_changed") + + if !input2: + input2 = MMNodeUniversalProperty.new() + input2.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_FLOAT + + input2.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_UNIVERSAL +# input2.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_FLOAT + input2.slot_name = ">>> Input 2 " + + if !input2.is_connected("changed", self, "on_input_changed"): + input2.connect("changed", self, "on_input_changed") + + if !output: + output = MMNodeUniversalProperty.new() + output.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_FLOAT + + output.output_slot_type = MMNodeUniversalProperty.SLOT_TYPE_UNIVERSAL +# output.output_slot_type = MMNodeUniversalProperty.SLOT_TYPE_FLOAT + output.slot_name = " Output >>>" + output.get_value_from_owner = true + + register_input_property(input1) + register_input_property(input2) + register_output_property(output) + +func _register_methods(mm_graph_node) -> void: + mm_graph_node.add_slot_label_universal(input1) + mm_graph_node.add_slot_label_universal(input2) + mm_graph_node.add_slot_label_universal(output) + + mm_graph_node.add_slot_float("get_amount", "set_amount", "Amount", 0.01) + +func _get_property_value(uv : Vector2) -> float: + return MMAlgos.sdf_morph(input1.get_value(uv), input2.get_value(uv), amount) + +#amount +func get_amount() -> float: + return amount + +func set_amount(val : float) -> void: + amount = val + + emit_changed() + output.emit_changed() + +func on_input_changed() -> void: + emit_changed() + output.emit_changed() diff --git a/game/addons/mat_maker_gd/nodes/sdf2d/sd_op_repeat.gd b/game/addons/mat_maker_gd/nodes/sdf2d/sd_op_repeat.gd new file mode 100644 index 0000000..e76e768 --- /dev/null +++ b/game/addons/mat_maker_gd/nodes/sdf2d/sd_op_repeat.gd @@ -0,0 +1,66 @@ +tool +extends MMNode + +export(Resource) var output : Resource +export(int) var x : int = 3 +export(int) var y : int = 3 +export(float) var random_rotation : float = 0.5 + +func _init_properties(): + if !output: + output = MMNodeUniversalProperty.new() + output.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_FLOAT + + output.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_UNIVERSAL + output.output_slot_type = MMNodeUniversalProperty.SLOT_TYPE_UNIVERSAL + #output.output_slot_type = MMNodeUniversalProperty.SLOT_TYPE_FLOAT + output.slot_name = ">>> Apply >>>" + output.get_value_from_owner = true + + register_input_property(output) + register_output_property(output) + +func _register_methods(mm_graph_node) -> void: + mm_graph_node.add_slot_label_universal(output) + + mm_graph_node.add_slot_int("get_x", "set_x", "X") + mm_graph_node.add_slot_int("get_y", "set_y", "Y") + mm_graph_node.add_slot_float("get_random_rotation", "set_random_rotation", "Random rotation", 0.01) + +func _get_property_value(uv : Vector2): + #todo add this as a parameter + var pseed : int = 123123 + + #$in(repeat_2d($uv, vec2(1.0/$rx, 1.0/$ry), float($seed), $r)) + var new_uv : Vector2 = MMAlgos.repeat_2d(uv, Vector2(1.0 / float(x), 1.0/ float(y)), 1.0/float(pseed), random_rotation) + + return output.get_value(new_uv, true) +#x +func get_x() -> int: + return x + +func set_x(val : int) -> void: + x = val + + emit_changed() + output.emit_changed() + +#y +func get_y() -> int: + return y + +func set_y(val : int) -> void: + y = val + + emit_changed() + output.emit_changed() + +#random_rotation +func get_random_rotation() -> float: + return random_rotation + +func set_random_rotation(val : float) -> void: + random_rotation = val + + emit_changed() + output.emit_changed() diff --git a/game/addons/mat_maker_gd/nodes/sdf2d/sd_op_rounded_shape.gd b/game/addons/mat_maker_gd/nodes/sdf2d/sd_op_rounded_shape.gd new file mode 100644 index 0000000..9849a94 --- /dev/null +++ b/game/addons/mat_maker_gd/nodes/sdf2d/sd_op_rounded_shape.gd @@ -0,0 +1,40 @@ +tool +extends MMNode + +export(Resource) var output : Resource +export(float) var radius : float = 0 + +func _init_properties(): + if !output: + output = MMNodeUniversalProperty.new() + output.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_FLOAT + + output.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_UNIVERSAL + output.output_slot_type = MMNodeUniversalProperty.SLOT_TYPE_UNIVERSAL + #output.output_slot_type = MMNodeUniversalProperty.SLOT_TYPE_FLOAT + output.slot_name = ">>> Apply >>>" + output.get_value_from_owner = true + + register_input_property(output) + register_output_property(output) + +func _register_methods(mm_graph_node) -> void: + mm_graph_node.add_slot_label_universal(output) + + mm_graph_node.add_slot_float("get_radius", "set_radius", "Radius", 0.01) + +func _get_property_value(uv : Vector2): + var val : float = output.get_value(uv, true) + + return MMAlgos.sdf_rounded_shape(val, radius) + +#radius +func get_radius() -> float: + return radius + +func set_radius(val : float) -> void: + radius = val + + emit_changed() + output.emit_changed() + diff --git a/game/addons/mat_maker_gd/nodes/sdf2d/sd_op_smooth_bool.gd b/game/addons/mat_maker_gd/nodes/sdf2d/sd_op_smooth_bool.gd new file mode 100644 index 0000000..77ea9dd --- /dev/null +++ b/game/addons/mat_maker_gd/nodes/sdf2d/sd_op_smooth_bool.gd @@ -0,0 +1,85 @@ +tool +extends MMNode + +export(Resource) var input1 : Resource +export(Resource) var input2 : Resource +export(Resource) var output : Resource +export(int, "Union,Substraction,Intersection") var operation : int = 0 +export(float) var smoothness : float = 0.15 + +func _init_properties(): + if !input1: + input1 = MMNodeUniversalProperty.new() + input1.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_FLOAT + + input1.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_UNIVERSAL +# input1.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_FLOAT + input1.slot_name = ">>> Input 1 " + if !input1.is_connected("changed", self, "on_input_changed"): + input1.connect("changed", self, "on_input_changed") + + if !input2: + input2 = MMNodeUniversalProperty.new() + input2.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_FLOAT + + input2.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_UNIVERSAL +# input2.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_FLOAT + input2.slot_name = ">>> Input 2 " + + if !input2.is_connected("changed", self, "on_input_changed"): + input2.connect("changed", self, "on_input_changed") + + if !output: + output = MMNodeUniversalProperty.new() + output.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_FLOAT + + output.output_slot_type = MMNodeUniversalProperty.SLOT_TYPE_UNIVERSAL +# output.output_slot_type = MMNodeUniversalProperty.SLOT_TYPE_FLOAT + output.slot_name = " Output >>>" + output.get_value_from_owner = true + + register_input_property(input1) + register_input_property(input2) + register_output_property(output) + +func _register_methods(mm_graph_node) -> void: + mm_graph_node.add_slot_label_universal(input1) + mm_graph_node.add_slot_label_universal(input2) + mm_graph_node.add_slot_label_universal(output) + + mm_graph_node.add_slot_enum("get_operation", "set_operation", "Operation", [ "Union", "Substraction", "Intersection" ]) + mm_graph_node.add_slot_float("get_smoothness", "set_smoothness", "Smoothness", 0.01) + +func _get_property_value(uv : Vector2) -> float: + if operation == 0: + return MMAlgos.sdf_smooth_boolean_union(input1.get_value(uv), input2.get_value(uv), smoothness) + elif operation == 1: + return MMAlgos.sdf_smooth_boolean_substraction(input1.get_value(uv), input2.get_value(uv), smoothness) + elif operation == 2: + return MMAlgos.sdf_smooth_boolean_intersection(input1.get_value(uv), input2.get_value(uv), smoothness) + + return 0.0 + +#operation +func get_operation() -> int: + return operation + +func set_operation(val : int) -> void: + operation = val + + emit_changed() + output.emit_changed() + +#smoothness +func get_smoothness() -> float: + return smoothness + +func set_smoothness(val : float) -> void: + smoothness = val + + emit_changed() + output.emit_changed() + +func on_input_changed() -> void: + emit_changed() + output.emit_changed() diff --git a/game/addons/mat_maker_gd/nodes/sdf2d/sd_shape_arc.gd b/game/addons/mat_maker_gd/nodes/sdf2d/sd_shape_arc.gd new file mode 100644 index 0000000..e704d38 --- /dev/null +++ b/game/addons/mat_maker_gd/nodes/sdf2d/sd_shape_arc.gd @@ -0,0 +1,58 @@ +tool +extends MMNode + +export(Resource) var output : Resource +export(Vector2) var angle : Vector2 = Vector2(30, 150) +export(float) var radius : float = 0.3 +export(float) var width : float = 0.1 + +func _init_properties(): + if !output: + output = MMNodeUniversalProperty.new() + output.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_FLOAT + + output.output_slot_type = MMNodeUniversalProperty.SLOT_TYPE_FLOAT + output.slot_name = ">>> Output >>>" + output.get_value_from_owner = true + + register_output_property(output) + +func _register_methods(mm_graph_node) -> void: + mm_graph_node.add_slot_label_universal(output) + + mm_graph_node.add_slot_vector2("get_angle", "set_angle", "Angle", 1) + mm_graph_node.add_slot_float("get_radius", "set_radius", "Radius", 0.01) + mm_graph_node.add_slot_float("get_width", "set_width", "Width", 0.01) + +func _get_property_value(uv : Vector2) -> float: + return MMAlgos.sdf_arc(uv, angle, Vector2(radius, width)) + +#angle +func get_angle() -> Vector2: + return angle + +func set_angle(val : Vector2) -> void: + angle = val + + emit_changed() + output.emit_changed() + +#radius +func get_radius() -> float: + return radius + +func set_radius(val : float) -> void: + radius = val + + emit_changed() + output.emit_changed() + +#width +func get_width() -> float: + return width + +func set_width(val : float) -> void: + width = val + + emit_changed() + output.emit_changed() diff --git a/game/addons/mat_maker_gd/nodes/sdf2d/sd_shape_box.gd b/game/addons/mat_maker_gd/nodes/sdf2d/sd_shape_box.gd new file mode 100644 index 0000000..3a88da3 --- /dev/null +++ b/game/addons/mat_maker_gd/nodes/sdf2d/sd_shape_box.gd @@ -0,0 +1,46 @@ +tool +extends MMNode + +export(Resource) var output : Resource +export(Vector2) var center : Vector2 = Vector2(0, 0) +export(Vector2) var size : Vector2 = Vector2(0.3, 0.2) + +func _init_properties(): + if !output: + output = MMNodeUniversalProperty.new() + output.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_FLOAT + + output.output_slot_type = MMNodeUniversalProperty.SLOT_TYPE_FLOAT + output.slot_name = ">>> Output >>>" + output.get_value_from_owner = true + + register_output_property(output) + +func _register_methods(mm_graph_node) -> void: + mm_graph_node.add_slot_label_universal(output) + + mm_graph_node.add_slot_vector2("get_center", "set_center", "Center", 0.01) + mm_graph_node.add_slot_vector2("get_size", "set_size", "Size", 0.01) + +func _get_property_value(uv : Vector2) -> float: + return MMAlgos.sdf_box(uv, center, size) + +#center +func get_center() -> Vector2: + return center + +func set_center(val : Vector2) -> void: + center = val + + emit_changed() + output.emit_changed() + +#size +func get_size() -> Vector2: + return size + +func set_size(val : Vector2) -> void: + size = val + + emit_changed() + output.emit_changed() diff --git a/game/addons/mat_maker_gd/nodes/sdf2d/sd_shape_circle.gd b/game/addons/mat_maker_gd/nodes/sdf2d/sd_shape_circle.gd new file mode 100644 index 0000000..c5cce62 --- /dev/null +++ b/game/addons/mat_maker_gd/nodes/sdf2d/sd_shape_circle.gd @@ -0,0 +1,46 @@ +tool +extends MMNode + +export(Resource) var output : Resource +export(Vector2) var center : Vector2 = Vector2(0, 0) +export(float) var radius : float = 0.4 + +func _init_properties(): + if !output: + output = MMNodeUniversalProperty.new() + output.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_FLOAT + + output.output_slot_type = MMNodeUniversalProperty.SLOT_TYPE_FLOAT + output.slot_name = ">>> Output >>>" + output.get_value_from_owner = true + + register_output_property(output) + +func _register_methods(mm_graph_node) -> void: + mm_graph_node.add_slot_label_universal(output) + + mm_graph_node.add_slot_vector2("get_center", "set_center", "Center", 0.01) + mm_graph_node.add_slot_float("get_radius", "set_radius", "Radius", 0.01) + +func _get_property_value(uv : Vector2) -> float: + return MMAlgos.sdf_circle(uv, center, radius) + +#center +func get_center() -> Vector2: + return center + +func set_center(val : Vector2) -> void: + center = val + + emit_changed() + output.emit_changed() + +#radius +func get_radius() -> float: + return radius + +func set_radius(val : float) -> void: + radius = val + + emit_changed() + output.emit_changed() diff --git a/game/addons/mat_maker_gd/nodes/sdf2d/sd_shape_line.gd b/game/addons/mat_maker_gd/nodes/sdf2d/sd_shape_line.gd new file mode 100644 index 0000000..f4744da --- /dev/null +++ b/game/addons/mat_maker_gd/nodes/sdf2d/sd_shape_line.gd @@ -0,0 +1,70 @@ +tool +extends CurveBase + +export(Resource) var output : Resource +export(Vector2) var A : Vector2 = Vector2(-0.3, -0.3) +export(Vector2) var B : Vector2 = Vector2(0.3, 0.3) +export(float) var width : float = 0.1 + +func _init(): + init_points_11() + +func _init_properties(): + if !output: + output = MMNodeUniversalProperty.new() + output.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_FLOAT + + output.output_slot_type = MMNodeUniversalProperty.SLOT_TYPE_FLOAT + output.slot_name = ">>> Output >>>" + output.get_value_from_owner = true + + register_output_property(output) + +func _register_methods(mm_graph_node) -> void: + mm_graph_node.add_slot_label_universal(output) + + mm_graph_node.add_slot_vector2("get_a", "set_a", "A", 0.01) + mm_graph_node.add_slot_vector2("get_b", "set_b", "B", 0.01) + mm_graph_node.add_slot_float("get_width", "set_width", "Width", 0.01) + mm_graph_node.add_slot_curve() + +func _get_property_value(uv : Vector2) -> float: + var line : Vector2 = MMAlgos.sdf_line(uv, A, B, width) + + #$(name_uv)_sdl.x - $r * $profile($(name_uv)_sdl.y) + + return line.x - width * MMAlgos.curve(line.y, points_array) + +#a +func get_a() -> Vector2: + return A + +func set_a(val : Vector2) -> void: + A = val + + emit_changed() + output.emit_changed() + +#b +func get_b() -> Vector2: + return B + +func set_b(val : Vector2) -> void: + B = val + + emit_changed() + output.emit_changed() + +#width +func get_width() -> float: + return width + +func set_width(val : float) -> void: + width = val + + emit_changed() + output.emit_changed() + +func _curve_changed() -> void: + emit_changed() + output.emit_changed() diff --git a/game/addons/mat_maker_gd/nodes/sdf2d/sd_shape_polygon.gd b/game/addons/mat_maker_gd/nodes/sdf2d/sd_shape_polygon.gd new file mode 100644 index 0000000..c52e138 --- /dev/null +++ b/game/addons/mat_maker_gd/nodes/sdf2d/sd_shape_polygon.gd @@ -0,0 +1,26 @@ +tool +extends PolygonBase + +export(Resource) var output : Resource + +func _init_properties(): + if !output: + output = MMNodeUniversalProperty.new() + output.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_FLOAT + + output.output_slot_type = MMNodeUniversalProperty.SLOT_TYPE_FLOAT + output.slot_name = ">>> Output >>>" + output.get_value_from_owner = true + + register_output_property(output) + +func _register_methods(mm_graph_node) -> void: + mm_graph_node.add_slot_label_universal(output) + mm_graph_node.add_slot_polygon() + +func _get_property_value(uv : Vector2) -> float: + return MMAlgos.sdPolygon(uv, points) + +func _polygon_changed() -> void: + emit_changed() + output.emit_changed() diff --git a/game/addons/mat_maker_gd/nodes/sdf2d/sd_shape_rhombus.gd b/game/addons/mat_maker_gd/nodes/sdf2d/sd_shape_rhombus.gd new file mode 100644 index 0000000..827bc41 --- /dev/null +++ b/game/addons/mat_maker_gd/nodes/sdf2d/sd_shape_rhombus.gd @@ -0,0 +1,46 @@ +tool +extends MMNode + +export(Resource) var output : Resource +export(Vector2) var center : Vector2 = Vector2(0, 0) +export(Vector2) var size : Vector2 = Vector2(0.3, 0.2) + +func _init_properties(): + if !output: + output = MMNodeUniversalProperty.new() + output.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_FLOAT + + output.output_slot_type = MMNodeUniversalProperty.SLOT_TYPE_FLOAT + output.slot_name = ">>> Output >>>" + output.get_value_from_owner = true + + register_output_property(output) + +func _register_methods(mm_graph_node) -> void: + mm_graph_node.add_slot_label_universal(output) + + mm_graph_node.add_slot_vector2("get_center", "set_center", "Center", 0.01) + mm_graph_node.add_slot_vector2("get_size", "set_size", "Size", 0.01) + +func _get_property_value(uv : Vector2) -> float: + return MMAlgos.sdf_rhombus(uv, center, size) + +#center +func get_center() -> Vector2: + return center + +func set_center(val : Vector2) -> void: + center = val + + emit_changed() + output.emit_changed() + +#size +func get_size() -> Vector2: + return size + +func set_size(val : Vector2) -> void: + size = val + + emit_changed() + output.emit_changed() diff --git a/game/addons/mat_maker_gd/nodes/sdf2d/sd_show.gd b/game/addons/mat_maker_gd/nodes/sdf2d/sd_show.gd new file mode 100644 index 0000000..3c8871b --- /dev/null +++ b/game/addons/mat_maker_gd/nodes/sdf2d/sd_show.gd @@ -0,0 +1,64 @@ +tool +extends MMNode + +export(Resource) var image : Resource +export(Resource) var input : Resource +export(float) var bevel : float = 0 +export(float) var base : float = 0 + +func _init_properties(): + if !image: + image = MMNodeUniversalProperty.new() + image.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_IMAGE + + image.output_slot_type = MMNodeUniversalProperty.SLOT_TYPE_IMAGE + + if !input: + input = MMNodeUniversalProperty.new() + input.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_FLOAT + + #for some reason this doesn't work, todo check +# input.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_FLOAT + input.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_UNIVERSAL + input.slot_name = "Input" + + register_output_property(image) + register_input_property(input) + +func _register_methods(mm_graph_node) -> void: + mm_graph_node.add_slot_texture_universal(image) + mm_graph_node.add_slot_label_universal(input) + + mm_graph_node.add_slot_float("get_bevel", "set_bevel", "Bevel", 0.01) + mm_graph_node.add_slot_float("get_base", "set_base", "Base", 0.01) + +func _render(material) -> void: + var img : Image = render_image(material) + + image.set_value(img) + +func _get_value_for(uv : Vector2, pseed : int) -> Color: + var f : float = input.get_value(uv) + + #clamp($base-$in($uv)/max($bevel, 0.00001), 0.0, 1.0) + var cf : float = clamp(base - f / max(bevel, 0.00001), 0.0, 1.0) + + return Color(cf, cf, cf, 1) + +#bevel +func get_bevel() -> float: + return bevel + +func set_bevel(val : float) -> void: + bevel = val + + set_dirty(true) + +#base +func get_base() -> float: + return base + +func set_base(val : float) -> void: + base = val + + set_dirty(true) diff --git a/game/addons/mat_maker_gd/nodes/sdf2d/sd_tf_rotate.gd b/game/addons/mat_maker_gd/nodes/sdf2d/sd_tf_rotate.gd new file mode 100644 index 0000000..0647613 --- /dev/null +++ b/game/addons/mat_maker_gd/nodes/sdf2d/sd_tf_rotate.gd @@ -0,0 +1,39 @@ +tool +extends MMNode + +export(Resource) var output : Resource +export(float) var angle : float = 0 + +func _init_properties(): + if !output: + output = MMNodeUniversalProperty.new() + output.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_FLOAT + + output.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_UNIVERSAL + output.output_slot_type = MMNodeUniversalProperty.SLOT_TYPE_UNIVERSAL + #output.output_slot_type = MMNodeUniversalProperty.SLOT_TYPE_FLOAT + output.slot_name = ">>> Apply >>>" + output.get_value_from_owner = true + + register_input_property(output) + register_output_property(output) + +func _register_methods(mm_graph_node) -> void: + mm_graph_node.add_slot_label_universal(output) + + mm_graph_node.add_slot_float("get_angle", "set_angle", "Angle", 1) + +func _get_property_value(uv : Vector2): + #$in(sdf2d_rotate($uv, $a*0.01745329251))", + return output.get_value(MMAlgos.sdf2d_rotate(uv, angle * 0.01745329251), true) + +#angle +func get_angle() -> float: + return angle + +func set_angle(val : float) -> void: + angle = val + + emit_changed() + output.emit_changed() + diff --git a/game/addons/mat_maker_gd/nodes/sdf2d/sd_tf_scale.gd b/game/addons/mat_maker_gd/nodes/sdf2d/sd_tf_scale.gd new file mode 100644 index 0000000..c42fbaa --- /dev/null +++ b/game/addons/mat_maker_gd/nodes/sdf2d/sd_tf_scale.gd @@ -0,0 +1,39 @@ +tool +extends MMNode + +export(Resource) var output : Resource +export(float) var scale : float = 1 + +func _init_properties(): + if !output: + output = MMNodeUniversalProperty.new() + output.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_FLOAT + + output.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_UNIVERSAL + output.output_slot_type = MMNodeUniversalProperty.SLOT_TYPE_UNIVERSAL + #output.output_slot_type = MMNodeUniversalProperty.SLOT_TYPE_FLOAT + output.slot_name = ">>> Apply >>>" + output.get_value_from_owner = true + + register_input_property(output) + register_output_property(output) + +func _register_methods(mm_graph_node) -> void: + mm_graph_node.add_slot_label_universal(output) + + mm_graph_node.add_slot_float("get_scale", "set_scale", "Scale", 0.01) + +func _get_property_value(uv : Vector2): + #$in(($uv-vec2(0.5))/$s+vec2(0.5))*$s + return output.get_value(((uv - Vector2(0.5, 0.5)) / scale + Vector2(0.5, 0.5)), true) + +#scale +func get_scale() -> float: + return scale + +func set_scale(val : float) -> void: + scale = val + + emit_changed() + output.emit_changed() + diff --git a/game/addons/mat_maker_gd/nodes/sdf2d/sd_tf_translate.gd b/game/addons/mat_maker_gd/nodes/sdf2d/sd_tf_translate.gd new file mode 100644 index 0000000..cc2b9bd --- /dev/null +++ b/game/addons/mat_maker_gd/nodes/sdf2d/sd_tf_translate.gd @@ -0,0 +1,38 @@ +tool +extends MMNode + +export(Resource) var output : Resource +export(Vector2) var translation : Vector2 = Vector2(0, 0) + +func _init_properties(): + if !output: + output = MMNodeUniversalProperty.new() + output.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_FLOAT + + output.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_UNIVERSAL + output.output_slot_type = MMNodeUniversalProperty.SLOT_TYPE_UNIVERSAL + #output.output_slot_type = MMNodeUniversalProperty.SLOT_TYPE_FLOAT + output.slot_name = ">>> Apply >>>" + output.get_value_from_owner = true + + register_input_property(output) + register_output_property(output) + +func _register_methods(mm_graph_node) -> void: + mm_graph_node.add_slot_label_universal(output) + + mm_graph_node.add_slot_vector2("get_translation", "set_translation", "Translation", 0.01) + +func _get_property_value(uv : Vector2): + return output.get_value(uv - translation, true) + +#a +func get_translation() -> Vector2: + return translation + +func set_translation(val : Vector2) -> void: + translation = val + + emit_changed() + output.emit_changed() + diff --git a/game/addons/mat_maker_gd/nodes/sdf3d/sdf3d_color.gd b/game/addons/mat_maker_gd/nodes/sdf3d/sdf3d_color.gd new file mode 100644 index 0000000..03181aa --- /dev/null +++ b/game/addons/mat_maker_gd/nodes/sdf3d/sdf3d_color.gd @@ -0,0 +1,56 @@ +tool +extends MMNode + +export(Resource) var input : Resource +export(Resource) var output : Resource +export(float) var color : float = 0.5 + +func _init_properties(): + if !input: + input = MMNodeUniversalProperty.new() + input.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_VECTOR2 + + input.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_UNIVERSAL +# input.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_VECTOR2 + input.slot_name = ">>> Input " + if !input.is_connected("changed", self, "on_input_changed"): + input.connect("changed", self, "on_input_changed") + + if !output: + output = MMNodeUniversalProperty.new() + output.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_VECTOR2 + + output.output_slot_type = MMNodeUniversalProperty.SLOT_TYPE_FLOAT + output.slot_name = ">>> Output >>>" + output.get_value_from_owner = true + + register_input_property(input) + register_output_property(output) + +func _register_methods(mm_graph_node) -> void: + mm_graph_node.add_slot_label_universal(input) + mm_graph_node.add_slot_label_universal(output) + + mm_graph_node.add_slot_float("get_color", "set_color", "Color", 0.01) + +func _get_property_value_sdf3d(uv3 : Vector3) -> Vector2: + var v : Vector2 = input.get_value_sdf3d(uv3) + + v.y = color + + return v + + +#color +func get_color() -> float: + return color + +func set_color(val : float) -> void: + color = val + + emit_changed() + output.emit_changed() + +func on_input_changed() -> void: + emit_changed() + output.emit_changed() diff --git a/game/addons/mat_maker_gd/nodes/sdf3d/sdf3d_op_bool.gd b/game/addons/mat_maker_gd/nodes/sdf3d/sdf3d_op_bool.gd new file mode 100644 index 0000000..9588677 --- /dev/null +++ b/game/addons/mat_maker_gd/nodes/sdf3d/sdf3d_op_bool.gd @@ -0,0 +1,76 @@ +tool +extends MMNode + +export(Resource) var input1 : Resource +export(Resource) var input2 : Resource +export(Resource) var output : Resource +export(int, "Union,Substraction,Intersection") var operation : int = 0 + +func _init_properties(): + if !input1: + input1 = MMNodeUniversalProperty.new() + input1.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_VECTOR2 + + input1.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_UNIVERSAL +# input1.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_VECTOR2 + input1.slot_name = ">>> Input 1 " + + if !input1.is_connected("changed", self, "on_input_changed"): + input1.connect("changed", self, "on_input_changed") + + if !input2: + input2 = MMNodeUniversalProperty.new() + input2.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_VECTOR2 + + input2.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_UNIVERSAL +# input2.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_VECTOR2 + input2.slot_name = ">>> Input 2 " + + if !input2.is_connected("changed", self, "on_input_changed"): + input2.connect("changed", self, "on_input_changed") + + if !output: + output = MMNodeUniversalProperty.new() + output.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_VECTOR2 + + output.output_slot_type = MMNodeUniversalProperty.SLOT_TYPE_FLOAT + output.slot_name = ">>> Output >>>" + output.get_value_from_owner = true + + register_input_property(input1) + register_input_property(input2) + register_output_property(output) + +func _register_methods(mm_graph_node) -> void: + mm_graph_node.add_slot_label_universal(input1) + mm_graph_node.add_slot_label_universal(input2) + mm_graph_node.add_slot_label_universal(output) + + mm_graph_node.add_slot_enum("get_operation", "set_operation", "Operation", [ "Union", "Substraction", "Intersection" ]) + +func _get_property_value_sdf3d(uv3 : Vector3) -> Vector2: + var s1 : Vector2 = input1.get_value_sdf3d(uv3) + var s2 : Vector2 = input2.get_value_sdf3d(uv3) + + if operation == 0: + return MMAlgos.sdf3dc_union(s1, s2) + elif operation == 1: + return MMAlgos.sdf3dc_sub(s1, s2) + elif operation == 2: + return MMAlgos.sdf3dc_inter(s1, s2) + + return Vector2() + +#operation +func get_operation() -> int: + return operation + +func set_operation(val : int) -> void: + operation = val + + emit_changed() + output.emit_changed() + +func on_input_changed() -> void: + emit_changed() + output.emit_changed() diff --git a/game/addons/mat_maker_gd/nodes/sdf3d/sdf3d_op_circle_repeat.gd b/game/addons/mat_maker_gd/nodes/sdf3d/sdf3d_op_circle_repeat.gd new file mode 100644 index 0000000..71a37cb --- /dev/null +++ b/game/addons/mat_maker_gd/nodes/sdf3d/sdf3d_op_circle_repeat.gd @@ -0,0 +1,56 @@ +tool +extends MMNode + +export(Resource) var input : Resource +export(Resource) var output : Resource +export(int) var count : int = 5 + +func _init_properties(): + if !input: + input = MMNodeUniversalProperty.new() + input.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_VECTOR2 + + input.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_UNIVERSAL +# input.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_VECTOR2 + input.slot_name = ">>> Input " + + if !input.is_connected("changed", self, "on_input_changed"): + input.connect("changed", self, "on_input_changed") + + if !output: + output = MMNodeUniversalProperty.new() + output.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_VECTOR2 + + output.output_slot_type = MMNodeUniversalProperty.SLOT_TYPE_FLOAT + output.slot_name = ">>> Output >>>" + output.get_value_from_owner = true + + register_input_property(input) + register_output_property(output) + +func _register_methods(mm_graph_node) -> void: + mm_graph_node.add_slot_label_universal(input) + mm_graph_node.add_slot_label_universal(output) + + mm_graph_node.add_slot_int("get_count", "set_count", "Count") + +func _get_property_value_sdf3d(uv3 : Vector3) -> Vector2: + #todo make seed a class variable probably into MMNode + + var new_uv : Vector3 = MMAlgos.circle_repeat_transform(uv3, count) + + return input.get_value_sdf3d(new_uv) + +#count +func get_count() -> int: + return count + +func set_count(val : int) -> void: + count = val + + emit_changed() + output.emit_changed() + +func on_input_changed() -> void: + emit_changed() + output.emit_changed() diff --git a/game/addons/mat_maker_gd/nodes/sdf3d/sdf3d_op_elongation.gd b/game/addons/mat_maker_gd/nodes/sdf3d/sdf3d_op_elongation.gd new file mode 100644 index 0000000..882f089 --- /dev/null +++ b/game/addons/mat_maker_gd/nodes/sdf3d/sdf3d_op_elongation.gd @@ -0,0 +1,56 @@ +tool +extends MMNode + +export(Resource) var input : Resource +export(Resource) var output : Resource +export(Vector3) var length : Vector3 = Vector3(0.2, 0, 0) + +func _init_properties(): + if !input: + input = MMNodeUniversalProperty.new() + input.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_VECTOR2 + + input.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_UNIVERSAL +# input.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_VECTOR2 + input.slot_name = ">>> Input " + if !input.is_connected("changed", self, "on_input_changed"): + input.connect("changed", self, "on_input_changed") + + if !output: + output = MMNodeUniversalProperty.new() + output.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_VECTOR2 + + output.output_slot_type = MMNodeUniversalProperty.SLOT_TYPE_FLOAT + output.slot_name = ">>> Output >>>" + output.get_value_from_owner = true + + register_input_property(input) + register_output_property(output) + +func _register_methods(mm_graph_node) -> void: + mm_graph_node.add_slot_label_universal(input) + mm_graph_node.add_slot_label_universal(output) + + mm_graph_node.add_slot_vector3("get_length", "set_length", "Length", 0.01) + +func _get_property_value_sdf3d(uv3 : Vector3) -> Vector2: + #$in($uv - clamp($uv, -abs(vec3($x, $y, $z)), abs(vec3($x, $y, $z)))) + + var new_uv : Vector3 = uv3 - MMAlgos.clampv3(uv3, -MMAlgos.absv3(length), MMAlgos.absv3(length)) + + return input.get_value_sdf3d(new_uv) + + +#length +func get_length() -> Vector3: + return length + +func set_length(val : Vector3) -> void: + length = val + + emit_changed() + output.emit_changed() + +func on_input_changed() -> void: + emit_changed() + output.emit_changed() diff --git a/game/addons/mat_maker_gd/nodes/sdf3d/sdf3d_op_extrusion.gd b/game/addons/mat_maker_gd/nodes/sdf3d/sdf3d_op_extrusion.gd new file mode 100644 index 0000000..fe27a4b --- /dev/null +++ b/game/addons/mat_maker_gd/nodes/sdf3d/sdf3d_op_extrusion.gd @@ -0,0 +1,60 @@ +tool +extends MMNode + +export(Resource) var input : Resource +export(Resource) var output : Resource +export(float) var length : float = 0.25 + +func _init_properties(): + if !input: + input = MMNodeUniversalProperty.new() + input.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_FLOAT + + input.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_UNIVERSAL +# input.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_FLOAT + input.slot_name = ">>> Input " + + if !input.is_connected("changed", self, "on_input_changed"): + input.connect("changed", self, "on_input_changed") + + if !output: + output = MMNodeUniversalProperty.new() + output.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_VECTOR2 + + output.output_slot_type = MMNodeUniversalProperty.SLOT_TYPE_FLOAT + output.slot_name = ">>> Output >>>" + output.get_value_from_owner = true + + register_input_property(input) + register_output_property(output) + +func _register_methods(mm_graph_node) -> void: + mm_graph_node.add_slot_label_universal(input) + mm_graph_node.add_slot_label_universal(output) + + mm_graph_node.add_slot_float("get_length", "set_length", "Length", 0.01) + +func _get_property_value_sdf3d(uv3 : Vector3) -> Vector2: + #vec2 $(name_uv)_w = vec2($in($uv.xz+vec2(0.5)),abs($uv.y)-$d); + #ret min(max($(name_uv)_w.x,$(name_uv)_w.y),0.0)+length(max($(name_uv)_w,0.0)) + + var f : float = input.get_value(Vector2(uv3.x, uv3.z) + Vector2(0.5, 0.5)) + var w : Vector2 = Vector2(f, abs(uv3.y) - length) + + var ff : float = min(max(w.x,w.y),0.0) + MMAlgos.maxv2(w, Vector2()).length() + + return Vector2(ff, 0) + +#length +func get_length() -> float: + return length + +func set_length(val : float) -> void: + length = val + + emit_changed() + output.emit_changed() + +func on_input_changed() -> void: + emit_changed() + output.emit_changed() diff --git a/game/addons/mat_maker_gd/nodes/sdf3d/sdf3d_op_morph.gd b/game/addons/mat_maker_gd/nodes/sdf3d/sdf3d_op_morph.gd new file mode 100644 index 0000000..4ff09cf --- /dev/null +++ b/game/addons/mat_maker_gd/nodes/sdf3d/sdf3d_op_morph.gd @@ -0,0 +1,71 @@ +tool +extends MMNode + +export(Resource) var input1 : Resource +export(Resource) var input2 : Resource +export(Resource) var output : Resource +export(float) var amount : float = 0.5 + +func _init_properties(): + if !input1: + input1 = MMNodeUniversalProperty.new() + input1.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_VECTOR2 + + input1.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_UNIVERSAL +# input1.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_VECTOR2 + input1.slot_name = ">>> Input 1 " + + if !input1.is_connected("changed", self, "on_input_changed"): + input1.connect("changed", self, "on_input_changed") + + if !input2: + input2 = MMNodeUniversalProperty.new() + input2.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_VECTOR2 + + input2.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_UNIVERSAL +# input2.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_VECTOR2 + input2.slot_name = ">>> Input 2 " + + if !input2.is_connected("changed", self, "on_input_changed"): + input2.connect("changed", self, "on_input_changed") + + if !output: + output = MMNodeUniversalProperty.new() + output.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_VECTOR2 + + output.output_slot_type = MMNodeUniversalProperty.SLOT_TYPE_FLOAT + output.slot_name = ">>> Output >>>" + output.get_value_from_owner = true + + register_input_property(input1) + register_input_property(input2) + register_output_property(output) + +func _register_methods(mm_graph_node) -> void: + mm_graph_node.add_slot_label_universal(input1) + mm_graph_node.add_slot_label_universal(input2) + mm_graph_node.add_slot_label_universal(output) + + mm_graph_node.add_slot_float("get_amount", "set_amount", "Amount", 0.01) + +func _get_property_value_sdf3d(uv3 : Vector3) -> Vector2: + var s1 : Vector2 = input1.get_value_sdf3d(uv3) + var s2 : Vector2 = input2.get_value_sdf3d(uv3) + + #mix($in1($uv), $in2($uv), $amount) + + return lerp(s1, s2, amount) + +#amount +func get_amount() -> float: + return amount + +func set_amount(val : float) -> void: + amount = val + + emit_changed() + output.emit_changed() + +func on_input_changed() -> void: + emit_changed() + output.emit_changed() diff --git a/game/addons/mat_maker_gd/nodes/sdf3d/sdf3d_op_repeat.gd b/game/addons/mat_maker_gd/nodes/sdf3d/sdf3d_op_repeat.gd new file mode 100644 index 0000000..781b0e3 --- /dev/null +++ b/game/addons/mat_maker_gd/nodes/sdf3d/sdf3d_op_repeat.gd @@ -0,0 +1,68 @@ +tool +extends MMNode + +export(Resource) var input : Resource +export(Resource) var output : Resource +export(Vector2) var col_row : Vector2 = Vector2(3, 3) +export(float) var rotation : float = 0.3 + +func _init_properties(): + if !input: + input = MMNodeUniversalProperty.new() + input.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_VECTOR2 + + input.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_UNIVERSAL +# input.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_VECTOR2 + input.slot_name = ">>> Input " + + if !input.is_connected("changed", self, "on_input_changed"): + input.connect("changed", self, "on_input_changed") + + if !output: + output = MMNodeUniversalProperty.new() + output.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_VECTOR2 + + output.output_slot_type = MMNodeUniversalProperty.SLOT_TYPE_FLOAT + output.slot_name = ">>> Output >>>" + output.get_value_from_owner = true + + register_input_property(input) + register_output_property(output) + +func _register_methods(mm_graph_node) -> void: + mm_graph_node.add_slot_label_universal(input) + mm_graph_node.add_slot_label_universal(output) + + mm_graph_node.add_slot_vector2("get_col_row", "set_col_row", "Col,Row", 1) + mm_graph_node.add_slot_float("get_rotation", "set_rotation", "Rotation", 0.01) + +func _get_property_value_sdf3d(uv3 : Vector3) -> Vector2: + #todo make seed a class variable probably into MMNode + + var new_uv : Vector3 = MMAlgos.sdf3d_repeat(uv3, col_row, rotation, 1) + + return input.get_value_sdf3d(new_uv) + +#col_row +func get_col_row() -> Vector2: + return col_row + +func set_col_row(val : Vector2) -> void: + col_row = val + + emit_changed() + output.emit_changed() + +#rotation +func get_rotation() -> float: + return rotation + +func set_rotation(val : float) -> void: + rotation = val + + emit_changed() + output.emit_changed() + +func on_input_changed() -> void: + emit_changed() + output.emit_changed() diff --git a/game/addons/mat_maker_gd/nodes/sdf3d/sdf3d_op_revolution.gd b/game/addons/mat_maker_gd/nodes/sdf3d/sdf3d_op_revolution.gd new file mode 100644 index 0000000..8916bbf --- /dev/null +++ b/game/addons/mat_maker_gd/nodes/sdf3d/sdf3d_op_revolution.gd @@ -0,0 +1,57 @@ +tool +extends MMNode + +export(Resource) var input : Resource +export(Resource) var output : Resource +export(float) var offset : float = 0.25 + +func _init_properties(): + if !input: + input = MMNodeUniversalProperty.new() + input.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_FLOAT + + input.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_UNIVERSAL +# input.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_FLOAT + input.slot_name = ">>> Input " + + if !input.is_connected("changed", self, "on_input_changed"): + input.connect("changed", self, "on_input_changed") + + if !output: + output = MMNodeUniversalProperty.new() + output.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_VECTOR2 + + output.output_slot_type = MMNodeUniversalProperty.SLOT_TYPE_FLOAT + output.slot_name = ">>> Output >>>" + output.get_value_from_owner = true + + register_input_property(input) + register_output_property(output) + +func _register_methods(mm_graph_node) -> void: + mm_graph_node.add_slot_label_universal(input) + mm_graph_node.add_slot_label_universal(output) + + mm_graph_node.add_slot_float("get_offset", "set_offset", "Offset", 0.01) + +func _get_property_value_sdf3d(uv3 : Vector3) -> Vector2: + #vec2 $(name_uv)_q = vec2(length($uv.xy) - $d + 0.5, $uv.z + 0.5); + + var uv : Vector2 = Vector2(Vector2(uv3.x, uv3.y).length() - offset + 0.5, uv3.z + 0.5) + var f : float = input.get_value(uv) + + return Vector2(f, 0) + +#offset +func get_offset() -> float: + return offset + +func set_offset(val : float) -> void: + offset = val + + emit_changed() + output.emit_changed() + +func on_input_changed() -> void: + emit_changed() + output.emit_changed() diff --git a/game/addons/mat_maker_gd/nodes/sdf3d/sdf3d_op_rounded.gd b/game/addons/mat_maker_gd/nodes/sdf3d/sdf3d_op_rounded.gd new file mode 100644 index 0000000..ab9da7d --- /dev/null +++ b/game/addons/mat_maker_gd/nodes/sdf3d/sdf3d_op_rounded.gd @@ -0,0 +1,58 @@ +tool +extends MMNode + +export(Resource) var input : Resource +export(Resource) var output : Resource +export(float) var radius : float = 0.15 + +func _init_properties(): + if !input: + input = MMNodeUniversalProperty.new() + input.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_VECTOR2 + + input.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_UNIVERSAL +# input.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_VECTOR2 + input.slot_name = ">>> Input " + if !input.is_connected("changed", self, "on_input_changed"): + input.connect("changed", self, "on_input_changed") + + if !output: + output = MMNodeUniversalProperty.new() + output.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_VECTOR2 + + output.output_slot_type = MMNodeUniversalProperty.SLOT_TYPE_FLOAT + output.slot_name = ">>> Output >>>" + output.get_value_from_owner = true + + register_input_property(input) + register_output_property(output) + +func _register_methods(mm_graph_node) -> void: + mm_graph_node.add_slot_label_universal(input) + mm_graph_node.add_slot_label_universal(output) + + mm_graph_node.add_slot_float("get_radius", "set_radius", "Radius", 0.01) + +func _get_property_value_sdf3d(uv3 : Vector3) -> Vector2: + var v : Vector2 = input.get_value_sdf3d(uv3) + + #vec2($(name_uv)_v.x-$r, $(name_uv)_v.y) + + v.x -= radius + + return v + + +#radius +func get_radius() -> float: + return radius + +func set_radius(val : float) -> void: + radius = val + + emit_changed() + output.emit_changed() + +func on_input_changed() -> void: + emit_changed() + output.emit_changed() diff --git a/game/addons/mat_maker_gd/nodes/sdf3d/sdf3d_op_smooth_bool.gd b/game/addons/mat_maker_gd/nodes/sdf3d/sdf3d_op_smooth_bool.gd new file mode 100644 index 0000000..c68d3bf --- /dev/null +++ b/game/addons/mat_maker_gd/nodes/sdf3d/sdf3d_op_smooth_bool.gd @@ -0,0 +1,88 @@ +tool +extends MMNode + +export(Resource) var input1 : Resource +export(Resource) var input2 : Resource +export(Resource) var output : Resource +export(int, "Union,Substraction,Intersection") var operation : int = 0 +export(float) var smoothness : float = 0.15 + +func _init_properties(): + if !input1: + input1 = MMNodeUniversalProperty.new() + input1.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_VECTOR2 + + input1.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_UNIVERSAL +# input1.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_VECTOR2 + input1.slot_name = ">>> Input 1 " + + if !input1.is_connected("changed", self, "on_input_changed"): + input1.connect("changed", self, "on_input_changed") + + if !input2: + input2 = MMNodeUniversalProperty.new() + input2.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_VECTOR2 + + input2.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_UNIVERSAL +# input2.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_VECTOR2 + input2.slot_name = ">>> Input 2 " + + if !input2.is_connected("changed", self, "on_input_changed"): + input2.connect("changed", self, "on_input_changed") + + if !output: + output = MMNodeUniversalProperty.new() + output.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_VECTOR2 + + output.output_slot_type = MMNodeUniversalProperty.SLOT_TYPE_FLOAT + output.slot_name = ">>> Output >>>" + output.get_value_from_owner = true + + register_input_property(input1) + register_input_property(input2) + register_output_property(output) + +func _register_methods(mm_graph_node) -> void: + mm_graph_node.add_slot_label_universal(input1) + mm_graph_node.add_slot_label_universal(input2) + mm_graph_node.add_slot_label_universal(output) + + mm_graph_node.add_slot_enum("get_operation", "set_operation", "Operation", [ "Union", "Substraction", "Intersection" ]) + mm_graph_node.add_slot_float("get_smoothness", "set_smoothness", "Smoothness", 0.01) + +func _get_property_value_sdf3d(uv3 : Vector3) -> Vector2: + var s1 : Vector2 = input1.get_value_sdf3d(uv3) + var s2 : Vector2 = input2.get_value_sdf3d(uv3) + + if operation == 0: + return MMAlgos.sdf3d_smooth_union(s1, s2, smoothness) + elif operation == 1: + return MMAlgos.sdf3d_smooth_subtraction(s1, s2, smoothness) + elif operation == 2: + return MMAlgos.sdf3d_smooth_intersection(s1, s2, smoothness) + + return Vector2() + +#operation +func get_operation() -> int: + return operation + +func set_operation(val : int) -> void: + operation = val + + emit_changed() + output.emit_changed() + +#smoothness +func get_smoothness() -> float: + return smoothness + +func set_smoothness(val : float) -> void: + smoothness = val + + emit_changed() + output.emit_changed() + +func on_input_changed() -> void: + emit_changed() + output.emit_changed() diff --git a/game/addons/mat_maker_gd/nodes/sdf3d/sdf3d_render.gd b/game/addons/mat_maker_gd/nodes/sdf3d/sdf3d_render.gd new file mode 100644 index 0000000..d1bd3e4 --- /dev/null +++ b/game/addons/mat_maker_gd/nodes/sdf3d/sdf3d_render.gd @@ -0,0 +1,176 @@ +tool +extends MMNode + +export(Resource) var input : Resource + +export(Resource) var out_height_map : Resource +export(Resource) var out_normal_map : Resource +export(Resource) var out_color_map : Resource + +func _init_properties(): + if !input: + input = MMNodeUniversalProperty.new() + input.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_VECTOR2 + + #for some reason this doesn't work, todo check +# input.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_FLOAT + input.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_UNIVERSAL + input.slot_name = "Input" + + if !out_height_map: + out_height_map = MMNodeUniversalProperty.new() + out_height_map.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_IMAGE + + out_height_map.output_slot_type = MMNodeUniversalProperty.SLOT_TYPE_IMAGE + + if !out_normal_map: + out_normal_map = MMNodeUniversalProperty.new() + out_normal_map.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_IMAGE + + out_normal_map.output_slot_type = MMNodeUniversalProperty.SLOT_TYPE_IMAGE + + if !out_color_map: + out_color_map = MMNodeUniversalProperty.new() + out_color_map.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_IMAGE + + out_color_map.output_slot_type = MMNodeUniversalProperty.SLOT_TYPE_IMAGE + + register_output_property(out_height_map) + register_output_property(out_normal_map) + register_output_property(out_color_map) + register_input_property(input) + +func _register_methods(mm_graph_node) -> void: + mm_graph_node.add_slot_label_universal(input) + mm_graph_node.add_slot_texture_universal(out_height_map) + mm_graph_node.add_slot_texture_universal(out_normal_map) + mm_graph_node.add_slot_texture_universal(out_color_map) + + +func _render(material) -> void: + var height_map : Image = Image.new() + var normal_map : Image = Image.new() + var color_map : Image = Image.new() + + height_map.create(material.image_size.x, material.image_size.y, false, Image.FORMAT_RGBA8) + normal_map.create(material.image_size.x, material.image_size.y, false, Image.FORMAT_RGBA8) + color_map.create(material.image_size.x, material.image_size.y, false, Image.FORMAT_RGBA8) + + height_map.lock() + normal_map.lock() + color_map.lock() + + var w : float = material.image_size.x + var h : float = material.image_size.y + + var pseed : float = randf() + randi() + + for x in range(material.image_size.x): + for y in range(material.image_size.y): + var uv : Vector2 = Vector2(x / w, y / h) + + var raymarch : Vector2 = sdf3d_raymarch(uv) + + #HeightMap - float - The generated height map + #1.0-$(name_uv)_d.x + var hmf : float = 1.0 - raymarch.x + var height_map_col : Color = Color(hmf, hmf, hmf, 1) + + #NormalMap - rgb - The generated normal map + #vec3(0.5) + 0.5* normal_$name(vec3($uv-vec2(0.5), 1.0-$(name_uv)_d.x)) + var nuv : Vector2 = uv - Vector2(0.5, 0.5) + var n : Vector3 = sdf3d_normal(Vector3(nuv.x, nuv.y, 1.0 - raymarch.x)) + var nn : Vector3 = Vector3(0.5, 0.5, 0.5) + 0.5 * n + + var normal_map_col : Color = Color(nn.x, nn.y, nn.z, 1) + + #ColorMap - float - The generated color index map + #$(name_uv)_d.y + var color_map_col : Color = Color(raymarch.y, raymarch.y, raymarch.y, 1) + + height_map.set_pixel(x, y, height_map_col) + normal_map.set_pixel(x, y, normal_map_col) + color_map.set_pixel(x, y, color_map_col) + + height_map.unlock() + normal_map.unlock() + color_map.unlock() + + out_height_map.set_value(height_map) + out_normal_map.set_value(normal_map) + out_color_map.set_value(color_map) + +func _get_value_for(uv : Vector2, pseed : int) -> Color: + return Color() + +#vec2 raymarch_$name(vec2 uv) { +# vec3 ro = vec3(uv-vec2(0.5), 1.0); +# vec3 rd = vec3(0.0, 0.0, -1.0); +# float dO = 0.0; +# float c = 0.0; +# +# for (int i=0; i < 100; i++) { +# vec3 p = ro + rd*dO; +# vec2 dS = $sdf(p); +# dO += dS.x; +# +# if (dO >= 1.0) { +# break; +# } else if (dS.x < 0.0001) { +# c = dS.y; +# break; +# } +# } +# +# return vec2(dO, c); +#} + +func sdf3d_raymarch(uv : Vector2) -> Vector2: + var ro : Vector3 = Vector3(uv.x - 0.5, uv.y - 0.5, 1.0); + var rd : Vector3 = Vector3(0.0, 0.0, -1.0); + var dO : float = 0.0; + var c : float = 0.0; + + for i in range(100): + var p : Vector3 = ro + rd * dO; + var dS : Vector2 = input.get_value_sdf3d(p) + + dO += dS.x; + + if (dO >= 1.0): + break; + elif (dS.x < 0.0001): + c = dS.y; + break; + + return Vector2(dO, c); + +#vec3 normal_$name(vec3 p) { +# if (p.z <= 0.0) { +# return vec3(0.0, 0.0, 1.0); +# } +# +# float d = $sdf(p).x; +# float e = .001; +# vec3 n = d - vec3( +# $sdf(p-vec3(e, 0.0, 0.0)).x, +# $sdf(p-vec3(0.0, e, 0.0)).x, +# $sdf(p-vec3(0.0, 0.0, e)).x); +# +# return vec3(-1.0, -1.0, -1.0)*normalize(n); +#} + +func sdf3d_normal(p : Vector3) -> Vector3: + if (p.z <= 0.0): + return Vector3(0.0, 0.0, 1.0); + + var d : float = input.get_value_sdf3d(p).x + var e : float = .001; + + var n : Vector3 = Vector3( + d - input.get_value_sdf3d(p - Vector3(e, 0.0, 0.0)).x, + d - input.get_value_sdf3d(p - Vector3(0.0, e, 0.0)).x, + d - input.get_value_sdf3d(p - Vector3(0.0, 0.0, e)).x) + + return Vector3(-1.0, -1.0, -1.0) * n.normalized() + diff --git a/game/addons/mat_maker_gd/nodes/sdf3d/sdf3d_shape_box.gd b/game/addons/mat_maker_gd/nodes/sdf3d/sdf3d_shape_box.gd new file mode 100644 index 0000000..4c23674 --- /dev/null +++ b/game/addons/mat_maker_gd/nodes/sdf3d/sdf3d_shape_box.gd @@ -0,0 +1,46 @@ +tool +extends MMNode + +export(Resource) var output : Resource +export(Vector3) var size : Vector3 = Vector3(0.3, 0.25, 0.25) +export(float) var radius : float = 0.01 + +func _init_properties(): + if !output: + output = MMNodeUniversalProperty.new() + output.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_VECTOR2 + + output.output_slot_type = MMNodeUniversalProperty.SLOT_TYPE_FLOAT + output.slot_name = ">>> Output >>>" + output.get_value_from_owner = true + + register_output_property(output) + +func _register_methods(mm_graph_node) -> void: + mm_graph_node.add_slot_label_universal(output) + + mm_graph_node.add_slot_vector3("get_size", "set_size", "Size", 0.01) + mm_graph_node.add_slot_float("get_radius", "set_radius", "Radius", 0.01) + +func _get_property_value_sdf3d(uv3 : Vector3) -> Vector2: + return MMAlgos.sdf3d_box(uv3, size.x, size.y, size.z, radius) + +#size +func get_size() -> Vector3: + return size + +func set_size(val : Vector3) -> void: + size = val + + emit_changed() + output.emit_changed() + +#radius +func get_radius() -> float: + return radius + +func set_radius(val : float) -> void: + radius = val + + emit_changed() + output.emit_changed() diff --git a/game/addons/mat_maker_gd/nodes/sdf3d/sdf3d_shape_capsule.gd b/game/addons/mat_maker_gd/nodes/sdf3d/sdf3d_shape_capsule.gd new file mode 100644 index 0000000..a6b38de --- /dev/null +++ b/game/addons/mat_maker_gd/nodes/sdf3d/sdf3d_shape_capsule.gd @@ -0,0 +1,107 @@ +tool +extends CurveBase + +export(Resource) var output : Resource +export(int, "X,Y,Z") var axis : int = 1 +export(float) var length : float = 0.3 +export(float) var radius : float = 0.2 + +func _init(): + init_points_11() + +func _init_properties(): + if !output: + output = MMNodeUniversalProperty.new() + output.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_VECTOR2 + + output.output_slot_type = MMNodeUniversalProperty.SLOT_TYPE_FLOAT + output.slot_name = ">>> Output >>>" + output.get_value_from_owner = true + + register_output_property(output) + +func _register_methods(mm_graph_node) -> void: + mm_graph_node.add_slot_label_universal(output) + + mm_graph_node.add_slot_enum("get_axis", "set_axis", "Axis", [ "X", "Y", "Z" ]) + mm_graph_node.add_slot_float("get_length", "set_length", "Length", 0.01) + mm_graph_node.add_slot_float("get_radius", "set_radius", "Radius", 0.01) + mm_graph_node.add_slot_curve() + +func _get_property_value_sdf3d(uv3 : Vector3) -> Vector2: + if axis == 0: + return sdf3d_capsule_x(uv3, radius, length) + elif axis == 1: + return sdf3d_capsule_y(uv3, radius, length) + elif axis == 2: + return sdf3d_capsule_z(uv3, radius, length) + + return Vector2() + +#vec3 $(name_uv)_p = $uv; +#$(name_uv)_p.$axis -= clamp($(name_uv)_p.$axis, -$l, $l); +#return length($(name_uv)_p) - $r * $profile(clamp(0.5+0.5*($uv).$axis/$l, 0.0, 1.0)) + +func sdf3d_capsule_y(p : Vector3, r : float, l : float) -> Vector2: + var v : Vector3 = p; + v.y -= clamp(v.y, -l, l); + + var cx : float = clamp(0.5 + 0.5 * p.y / l, 0.0, 1.0) + var cp : float = MMAlgos.curve(cx, points_array) + var f : float = v.length() - r * cp + + return Vector2(f, 0.0); + +func sdf3d_capsule_x(p : Vector3, r : float, l : float) -> Vector2: + var v : Vector3 = p; + v.x -= clamp(v.x, -l, l); + + var cx : float = clamp(0.5 + 0.5 * p.x / l, 0.0, 1.0) + var cp : float = MMAlgos.curve(cx, points_array) + var f : float = v.length() - r * cp + + return Vector2(f, 0.0); + +func sdf3d_capsule_z(p : Vector3, r : float, l : float) -> Vector2: + var v : Vector3 = p; + v.z -= clamp(v.z, -l, l); + + var cx : float = clamp(0.5 + 0.5 * p.z / l, 0.0, 1.0) + var cp : float = MMAlgos.curve(cx, points_array) + var f : float = v.length() - r * cp + + return Vector2(f, 0.0); + +#axis +func get_axis() -> int: + return axis + +func set_axis(val : int) -> void: + axis = val + + emit_changed() + output.emit_changed() + +#length +func get_length() -> float: + return length + +func set_length(val : float) -> void: + length = val + + emit_changed() + output.emit_changed() + +#radius +func get_radius() -> float: + return radius + +func set_radius(val : float) -> void: + radius = val + + emit_changed() + output.emit_changed() + +func _curve_changed() -> void: + emit_changed() + output.emit_changed() diff --git a/game/addons/mat_maker_gd/nodes/sdf3d/sdf3d_shape_cone.gd b/game/addons/mat_maker_gd/nodes/sdf3d/sdf3d_shape_cone.gd new file mode 100644 index 0000000..450242b --- /dev/null +++ b/game/addons/mat_maker_gd/nodes/sdf3d/sdf3d_shape_cone.gd @@ -0,0 +1,60 @@ +tool +extends MMNode + +export(Resource) var output : Resource +export(int, "+X,-X,+Y,-Y,+Z,-Z") var axis : int = 2 +export(float) var angle : float = 30 + +func _init_properties(): + if !output: + output = MMNodeUniversalProperty.new() + output.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_VECTOR2 + + output.output_slot_type = MMNodeUniversalProperty.SLOT_TYPE_FLOAT + output.slot_name = ">>> Output >>>" + output.get_value_from_owner = true + + register_output_property(output) + +func _register_methods(mm_graph_node) -> void: + mm_graph_node.add_slot_label_universal(output) + + mm_graph_node.add_slot_enum("get_axis", "set_axis", "Axis", [ "+X", "-X", "+Y", "-Y", "+Z", "-Z" ]) + mm_graph_node.add_slot_float("get_angle", "set_angle", "Angle", 1) + +func _get_property_value_sdf3d(uv3 : Vector3) -> Vector2: + if axis == 0: + return MMAlgos.sdf3d_cone_px(uv3, angle) + elif axis == 1: + return MMAlgos.sdf3d_cone_nx(uv3, angle) + elif axis == 2: + return MMAlgos.sdf3d_cone_py(uv3, angle) + elif axis == 3: + return MMAlgos.sdf3d_cone_ny(uv3, angle) + elif axis == 4: + return MMAlgos.sdf3d_cone_pz(uv3, angle) + elif axis == 5: + return MMAlgos.sdf3d_cone_nz(uv3, angle) + + return Vector2() + +#axis +func get_axis() -> int: + return axis + +func set_axis(val : int) -> void: + axis = val + + emit_changed() + output.emit_changed() + +#angle +func get_angle() -> float: + return angle + +func set_angle(val : float) -> void: + angle = val + + emit_changed() + output.emit_changed() + diff --git a/game/addons/mat_maker_gd/nodes/sdf3d/sdf3d_shape_cylinder.gd b/game/addons/mat_maker_gd/nodes/sdf3d/sdf3d_shape_cylinder.gd new file mode 100644 index 0000000..cc7c664 --- /dev/null +++ b/game/addons/mat_maker_gd/nodes/sdf3d/sdf3d_shape_cylinder.gd @@ -0,0 +1,65 @@ +tool +extends MMNode + +export(Resource) var output : Resource +export(int, "X,Y,Z") var axis : int = 1 +export(float) var length : float = 0.25 +export(float) var radius : float = 0.25 + +func _init_properties(): + if !output: + output = MMNodeUniversalProperty.new() + output.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_VECTOR2 + + output.output_slot_type = MMNodeUniversalProperty.SLOT_TYPE_FLOAT + output.slot_name = ">>> Output >>>" + output.get_value_from_owner = true + + register_output_property(output) + +func _register_methods(mm_graph_node) -> void: + mm_graph_node.add_slot_label_universal(output) + + mm_graph_node.add_slot_enum("get_axis", "set_axis", "Axis", [ "X", "Y", "Z" ]) + mm_graph_node.add_slot_float("get_length", "set_length", "Length", 0.01) + mm_graph_node.add_slot_float("get_radius", "set_radius", "Radius", 0.01) + +func _get_property_value_sdf3d(uv3 : Vector3) -> Vector2: + if axis == 0: + return MMAlgos.sdf3d_cylinder_x(uv3, radius, length) + elif axis == 1: + return MMAlgos.sdf3d_cylinder_y(uv3, radius, length) + elif axis == 2: + return MMAlgos.sdf3d_cylinder_z(uv3, radius, length) + + return Vector2() + +#axis +func get_axis() -> int: + return axis + +func set_axis(val : int) -> void: + axis = val + + emit_changed() + output.emit_changed() + +#length +func get_length() -> float: + return length + +func set_length(val : float) -> void: + length = val + + emit_changed() + output.emit_changed() + +#radius +func get_radius() -> float: + return radius + +func set_radius(val : float) -> void: + radius = val + + emit_changed() + output.emit_changed() diff --git a/game/addons/mat_maker_gd/nodes/sdf3d/sdf3d_shape_sphere.gd b/game/addons/mat_maker_gd/nodes/sdf3d/sdf3d_shape_sphere.gd new file mode 100644 index 0000000..66f6718 --- /dev/null +++ b/game/addons/mat_maker_gd/nodes/sdf3d/sdf3d_shape_sphere.gd @@ -0,0 +1,34 @@ +tool +extends MMNode + +export(Resource) var output : Resource +export(float) var radius : float = 0.5 + +func _init_properties(): + if !output: + output = MMNodeUniversalProperty.new() + output.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_VECTOR2 + + output.output_slot_type = MMNodeUniversalProperty.SLOT_TYPE_FLOAT + output.slot_name = ">>> Output >>>" + output.get_value_from_owner = true + + register_output_property(output) + +func _register_methods(mm_graph_node) -> void: + mm_graph_node.add_slot_label_universal(output) + + mm_graph_node.add_slot_float("get_radius", "set_radius", "Radius", 0.01) + +func _get_property_value_sdf3d(uv3 : Vector3) -> Vector2: + return MMAlgos.sdf3d_sphere(uv3, radius) + +#radius +func get_radius() -> float: + return radius + +func set_radius(val : float) -> void: + radius = val + + emit_changed() + output.emit_changed() diff --git a/game/addons/mat_maker_gd/nodes/sdf3d/sdf3d_shape_torus.gd b/game/addons/mat_maker_gd/nodes/sdf3d/sdf3d_shape_torus.gd new file mode 100644 index 0000000..fef6698 --- /dev/null +++ b/game/addons/mat_maker_gd/nodes/sdf3d/sdf3d_shape_torus.gd @@ -0,0 +1,65 @@ +tool +extends MMNode + +export(Resource) var output : Resource +export(int, "X,Y,Z") var axis : int = 2 +export(float) var major_radius : float = 0.3 +export(float) var minor_radius : float = 0.15 + +func _init_properties(): + if !output: + output = MMNodeUniversalProperty.new() + output.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_VECTOR2 + + output.output_slot_type = MMNodeUniversalProperty.SLOT_TYPE_FLOAT + output.slot_name = ">>> Output >>>" + output.get_value_from_owner = true + + register_output_property(output) + +func _register_methods(mm_graph_node) -> void: + mm_graph_node.add_slot_label_universal(output) + + mm_graph_node.add_slot_enum("get_axis", "set_axis", "Axis", [ "X", "Y", "Z" ]) + mm_graph_node.add_slot_float("get_major_radius", "set_major_radius", "Major_radius", 0.01) + mm_graph_node.add_slot_float("get_minor_radius", "set_minor_radius", "Minor_radius", 0.01) + +func _get_property_value_sdf3d(uv3 : Vector3) -> Vector2: + if axis == 0: + return MMAlgos.sdf3d_torus_x(uv3, major_radius, minor_radius) + elif axis == 1: + return MMAlgos.sdf3d_torus_y(uv3, major_radius, minor_radius) + elif axis == 2: + return MMAlgos.sdf3d_torus_z(uv3, major_radius, minor_radius) + + return Vector2() + +#axis +func get_axis() -> int: + return axis + +func set_axis(val : int) -> void: + axis = val + + emit_changed() + output.emit_changed() + +#major_radius +func get_major_radius() -> float: + return major_radius + +func set_major_radius(val : float) -> void: + major_radius = val + + emit_changed() + output.emit_changed() + +#minor_radius +func get_minor_radius() -> float: + return minor_radius + +func set_minor_radius(val : float) -> void: + minor_radius = val + + emit_changed() + output.emit_changed() diff --git a/game/addons/mat_maker_gd/nodes/sdf3d/sdf3d_tf_rotate.gd b/game/addons/mat_maker_gd/nodes/sdf3d/sdf3d_tf_rotate.gd new file mode 100644 index 0000000..978f20f --- /dev/null +++ b/game/addons/mat_maker_gd/nodes/sdf3d/sdf3d_tf_rotate.gd @@ -0,0 +1,54 @@ +tool +extends MMNode + +export(Resource) var input : Resource +export(Resource) var output : Resource +export(Vector3) var rotation : Vector3 = Vector3() + +func _init_properties(): + if !input: + input = MMNodeUniversalProperty.new() + input.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_VECTOR2 + + input.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_UNIVERSAL +# input.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_VECTOR2 + input.slot_name = ">>> Input " + + if !input.is_connected("changed", self, "on_input_changed"): + input.connect("changed", self, "on_input_changed") + + if !output: + output = MMNodeUniversalProperty.new() + output.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_VECTOR2 + + output.output_slot_type = MMNodeUniversalProperty.SLOT_TYPE_FLOAT + output.slot_name = ">>> Output >>>" + output.get_value_from_owner = true + + register_input_property(input) + register_output_property(output) + +func _register_methods(mm_graph_node) -> void: + mm_graph_node.add_slot_label_universal(input) + mm_graph_node.add_slot_label_universal(output) + + mm_graph_node.add_slot_vector3("get_rotation", "set_rotation", "Rotation", 0.01) + +func _get_property_value_sdf3d(uv3 : Vector3) -> Vector2: + #$in(rotate3d($uv, -vec3($ax, $ay, $az)*0.01745329251)) + + return input.get_value_sdf3d(MMAlgos.rotate3d(uv3, -rotation * 0.01745329251)) + +#rotation +func get_rotation() -> Vector3: + return rotation + +func set_rotation(val : Vector3) -> void: + rotation = val + + emit_changed() + output.emit_changed() + +func on_input_changed() -> void: + emit_changed() + output.emit_changed() diff --git a/game/addons/mat_maker_gd/nodes/sdf3d/sdf3d_tf_scale.gd b/game/addons/mat_maker_gd/nodes/sdf3d/sdf3d_tf_scale.gd new file mode 100644 index 0000000..7b6776e --- /dev/null +++ b/game/addons/mat_maker_gd/nodes/sdf3d/sdf3d_tf_scale.gd @@ -0,0 +1,53 @@ +tool +extends MMNode + +export(Resource) var input : Resource +export(Resource) var output : Resource +export(float) var scale : float = 1 + +func _init_properties(): + if !input: + input = MMNodeUniversalProperty.new() + input.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_VECTOR2 + + input.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_UNIVERSAL +# input.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_VECTOR2 + input.slot_name = ">>> Input " + + if !input.is_connected("changed", self, "on_input_changed"): + input.connect("changed", self, "on_input_changed") + + if !output: + output = MMNodeUniversalProperty.new() + output.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_VECTOR2 + + output.output_slot_type = MMNodeUniversalProperty.SLOT_TYPE_FLOAT + output.slot_name = ">>> Output >>>" + output.get_value_from_owner = true + + register_input_property(input) + register_output_property(output) + +func _register_methods(mm_graph_node) -> void: + mm_graph_node.add_slot_label_universal(input) + mm_graph_node.add_slot_label_universal(output) + + mm_graph_node.add_slot_float("get_scale", "set_scale", "Scale", 0.01) + +func _get_property_value_sdf3d(uv3 : Vector3) -> Vector2: + #vec2 $(name_uv)_in = $in(($uv)/$s); + return input.get_value_sdf3d(uv3 / scale) + +#scale +func get_scale() -> float: + return scale + +func set_scale(val : float) -> void: + scale = val + + emit_changed() + output.emit_changed() + +func on_input_changed() -> void: + emit_changed() + output.emit_changed() diff --git a/game/addons/mat_maker_gd/nodes/sdf3d/sdf3d_tf_translate.gd b/game/addons/mat_maker_gd/nodes/sdf3d/sdf3d_tf_translate.gd new file mode 100644 index 0000000..fc61785 --- /dev/null +++ b/game/addons/mat_maker_gd/nodes/sdf3d/sdf3d_tf_translate.gd @@ -0,0 +1,53 @@ +tool +extends MMNode + +export(Resource) var input : Resource +export(Resource) var output : Resource +export(Vector3) var translation : Vector3 = Vector3() + +func _init_properties(): + if !input: + input = MMNodeUniversalProperty.new() + input.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_VECTOR2 + + input.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_UNIVERSAL +# input.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_VECTOR2 + input.slot_name = ">>> Input " + + if !input.is_connected("changed", self, "on_input_changed"): + input.connect("changed", self, "on_input_changed") + + if !output: + output = MMNodeUniversalProperty.new() + output.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_VECTOR2 + + output.output_slot_type = MMNodeUniversalProperty.SLOT_TYPE_FLOAT + output.slot_name = ">>> Output >>>" + output.get_value_from_owner = true + + register_input_property(input) + register_output_property(output) + +func _register_methods(mm_graph_node) -> void: + mm_graph_node.add_slot_label_universal(input) + mm_graph_node.add_slot_label_universal(output) + + mm_graph_node.add_slot_vector3("get_translation", "set_translation", "Translation", 0.01) + +func _get_property_value_sdf3d(uv3 : Vector3) -> Vector2: + #$in($uv-vec3($x, $y, $z)) + return input.get_value_sdf3d(uv3 - translation) + +#translation +func get_translation() -> Vector3: + return translation + +func set_translation(val : Vector3) -> void: + translation = val + + emit_changed() + output.emit_changed() + +func on_input_changed() -> void: + emit_changed() + output.emit_changed() diff --git a/game/addons/mat_maker_gd/nodes/simple/curve.gd b/game/addons/mat_maker_gd/nodes/simple/curve.gd new file mode 100644 index 0000000..b8e6b5c --- /dev/null +++ b/game/addons/mat_maker_gd/nodes/simple/curve.gd @@ -0,0 +1,115 @@ +tool +extends MMNode + +export(Resource) var image : Resource + +export(Resource) var input : Resource +export(Vector2) var a : Vector2 = Vector2(-0.35, -0.2) +export(Vector2) var b : Vector2 = Vector2(0, 0.5) +export(Vector2) var c : Vector2 = Vector2(0.35, -0.2) +export(float) var width : float = 0.05 +export(int) var repeat : int = 1 + +func _init_properties(): + if !image: + image = MMNodeUniversalProperty.new() + image.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_IMAGE + + image.output_slot_type = MMNodeUniversalProperty.SLOT_TYPE_IMAGE + + if !input: + input = MMNodeUniversalProperty.new() + input.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_FLOAT + input.set_default_value(1.0) + + input.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_UNIVERSAL + input.slot_name = ">>> Input " + + register_input_property(input) + register_output_property(image) + +func _register_methods(mm_graph_node) -> void: + mm_graph_node.add_slot_texture_universal(image) + mm_graph_node.add_slot_label_universal(input) + + mm_graph_node.add_slot_vector2("get_a", "set_a", "A", 0.01) + mm_graph_node.add_slot_vector2("get_b", "set_b", "B", 0.01) + mm_graph_node.add_slot_vector2("get_c", "set_c", "C", 0.01) + mm_graph_node.add_slot_float("get_width", "set_width", "Width", 0.01) + mm_graph_node.add_slot_int("get_repeat", "set_repeat", "Repeat") + +func _get_value_for(uv : Vector2, pseed : int) -> Color: + var nuv : Vector2 = transform_uv(uv) + + var f : float = 0 + + if nuv.x != 0 && nuv.y != 0: + f = input.get_value(nuv) + + return Color(f, f, f, 1) + +func _render(material) -> void: + var img : Image = render_image(material) + + image.set_value(img) + +func transform_uv(uv : Vector2) -> Vector2: + #vec2 $(name_uv)_bezier = sdBezier($uv, vec2($ax+0.5, $ay+0.5), vec2($bx+0.5, $by+0.5), vec2($cx+0.5, $cy+0.5)); + var bezier : Vector2 = MMAlgos.sdBezier(uv, Vector2(a.x + 0.5, a.y + 0.5), Vector2(b.x + 0.5, b.y + 0.5), Vector2(c.x + 0.5, c.y + 0.5)) + + #vec2 $(name_uv)_uv = vec2($(name_uv)_bezier.x, $(name_uv)_bezier.y / $width+0.5); + var new_uv : Vector2 = Vector2(bezier.x, bezier.y / width + 0.5) + + #vec2 $(name_uv)_uvtest = step(vec2(0.5), abs($(name_uv)_uv-vec2(0.5))); + var uv_test : Vector2 = MMAlgos.stepv2(Vector2(0.5, 0.5), MMAlgos.absv2(new_uv - Vector2(0.5, 0.5))) + + #$(name_uv)_uv = mix(vec2(fract($repeat*$(name_uv)_uv.x), $(name_uv)_uv.y), vec2(0.0), max($(name_uv)_uvtest.x, $(name_uv)_uvtest.y)); + var final_uv : Vector2 = lerp(Vector2(MMAlgos.fract(repeat * new_uv.x), new_uv.y), Vector2(), max(uv_test.x, uv_test.y)) + + return final_uv + +#b +func get_a() -> Vector2: + return a + +func set_a(val : Vector2) -> void: + a = val + + set_dirty(true) + +#b +func get_b() -> Vector2: + return b + +func set_b(val : Vector2) -> void: + b = val + + set_dirty(true) + +#c +func get_c() -> Vector2: + return c + +func set_c(val : Vector2) -> void: + c = val + + set_dirty(true) + +#width +func get_width() -> float: + return width + +func set_width(val : float) -> void: + width = val + + set_dirty(true) + +#repeat +func get_repeat() -> int: + return repeat + +func set_repeat(val : int) -> void: + repeat = val + + set_dirty(true) + diff --git a/game/addons/mat_maker_gd/nodes/simple/image.gd b/game/addons/mat_maker_gd/nodes/simple/image.gd new file mode 100644 index 0000000..a92d9be --- /dev/null +++ b/game/addons/mat_maker_gd/nodes/simple/image.gd @@ -0,0 +1,41 @@ +tool +extends MMNode + +export(Resource) var image : Resource +export(String) var image_path : String + +func _init_properties(): + if !image: + image = MMNodeUniversalProperty.new() + image.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_IMAGE + + image.output_slot_type = MMNodeUniversalProperty.SLOT_TYPE_IMAGE + + register_output_property(image) + +func _register_methods(mm_graph_node) -> void: + mm_graph_node.add_slot_image_path_universal(image, "get_image_path", "set_image_path") + +#func _render(material) -> void: +# var img : Image = render_image(material) +# +# image.set_value(img) + +func _get_value_for(uv : Vector2, pseed : int) -> Color: + return image.get_value(uv) + +func get_image_path() -> String: + return image_path + +func set_image_path(val : String) -> void: + image_path = val + + var img : Image = Image.new() + + if image_path && image_path != "": + img.load(image_path) + + image.set_value(img) + + set_dirty(true) + diff --git a/game/addons/mat_maker_gd/nodes/simple/shape.gd b/game/addons/mat_maker_gd/nodes/simple/shape.gd new file mode 100644 index 0000000..a89abb6 --- /dev/null +++ b/game/addons/mat_maker_gd/nodes/simple/shape.gd @@ -0,0 +1,99 @@ +tool +extends MMNode + +enum ShapeType { + SHAPE_TYPE_CIRCLE = 0, + SHAPE_TYPE_POLYGON = 1, + SHAPE_TYPE_STAR = 2, + SHAPE_TYPE_CURVED_STAR = 3, + SHAPE_TYPE_RAYS = 4, +} + +export(Resource) var image : Resource +export(int, "Circle,Polygon,Star,Curved Star,Rays") var shape_type : int = 0 +export(int) var sides : int = 6 +export(Resource) var radius : Resource +export(Resource) var edge : Resource + +func _init_properties(): + if !image: + image = MMNodeUniversalProperty.new() + image.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_IMAGE + + image.output_slot_type = MMNodeUniversalProperty.SLOT_TYPE_IMAGE + + if !radius: + radius = MMNodeUniversalProperty.new() + radius.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_FLOAT + radius.set_default_value(0.34375) + + radius.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_UNIVERSAL + radius.slot_name = "radius" + radius.value_step = 0.05 + + if !edge: + edge = MMNodeUniversalProperty.new() + edge.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_FLOAT + edge.set_default_value(0.2) + + edge.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_UNIVERSAL + edge.slot_name = "edge" + edge.value_step = 0.05 + + register_input_property(radius) + register_input_property(edge) + + register_output_property(image) + +func _register_methods(mm_graph_node) -> void: + mm_graph_node.add_slot_texture_universal(image) + mm_graph_node.add_slot_enum("get_shape_typoe", "set_shape_typoe", "shape_type", [ "Circle", "Polygon", "Star", "Curved Star", "Rays" ]) + mm_graph_node.add_slot_int("get_sides", "set_sides", "sides")#, Vector2(1, 10)) + mm_graph_node.add_slot_float_universal(radius) + mm_graph_node.add_slot_float_universal(edge) + +func _render(material) -> void: + var img : Image = render_image(material) + + image.set_value(img) + +func _get_value_for(uv : Vector2, pseed : int) -> Color: + var c : float = 0 + + var rad : float = radius.get_value(uv) + var edg : float = edge.get_value(uv) + + if rad == 0: + rad = 0.0000001 + + if edg == 0: + edg = 0.0000001 + + if shape_type == ShapeType.SHAPE_TYPE_CIRCLE: + c = MMAlgos.shape_circle(uv, sides, rad, edg) + elif shape_type == ShapeType.SHAPE_TYPE_POLYGON: + c = MMAlgos.shape_polygon(uv, sides, rad, edg) + elif shape_type == ShapeType.SHAPE_TYPE_STAR: + c = MMAlgos.shape_star(uv, sides, rad, edg) + elif shape_type == ShapeType.SHAPE_TYPE_CURVED_STAR: + c = MMAlgos.shape_curved_star(uv, sides, rad, edg) + elif shape_type == ShapeType.SHAPE_TYPE_RAYS: + c = MMAlgos.shape_rays(uv, sides, rad, edg) + + return Color(c, c, c, 1) + +func get_shape_typoe() -> int: + return shape_type + +func set_shape_typoe(val : int) -> void: + shape_type = val + + set_dirty(true) + +func get_sides() -> int: + return sides + +func set_sides(val : int) -> void: + sides = val + + set_dirty(true) diff --git a/game/addons/mat_maker_gd/nodes/transform/circle_map.gd b/game/addons/mat_maker_gd/nodes/transform/circle_map.gd new file mode 100644 index 0000000..60de4dc --- /dev/null +++ b/game/addons/mat_maker_gd/nodes/transform/circle_map.gd @@ -0,0 +1,67 @@ +tool +extends MMNode + +export(Resource) var image : Resource +export(Resource) var input : Resource + +export(float) var radius : float = 1 +export(int) var repeat : int = 1 + +func _init_properties(): + if !input: + input = MMNodeUniversalProperty.new() + input.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_COLOR + input.set_default_value(Color(0, 0, 0, 1)) + + input.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_UNIVERSAL + input.slot_name = ">>> Input " + + if !image: + image = MMNodeUniversalProperty.new() + image.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_IMAGE + + #image.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_FLOAT + image.output_slot_type = MMNodeUniversalProperty.SLOT_TYPE_IMAGE + #image.force_override = true + + register_input_property(input) + register_output_property(image) + +func _register_methods(mm_graph_node) -> void: + mm_graph_node.add_slot_label_universal(input) + mm_graph_node.add_slot_texture_universal(image) + mm_graph_node.add_slot_float("get_radius", "set_radius", "Radius", 0.01) + mm_graph_node.add_slot_int("get_repeat", "set_repeat", "Repeat") + +func _render(material) -> void: + var img : Image = render_image(material) + + image.set_value(img) + +func _get_value_for(uv : Vector2, pseed : int) -> Color: + #$in(vec2(fract($repeat*atan($uv.y-0.5, $uv.x-0.5)*0.15915494309), min(0.99999, 2.0/$radius*length($uv-vec2(0.5)))))", + + var nuv : Vector2 = Vector2(MMAlgos.fractf(repeat*atan2(uv.y - 0.5, uv.x - 0.5) * 0.15915494309), min(0.99999, 2.0 / radius * (uv - Vector2(0.5, 0.5)).length())) + + return input.get_value(nuv) + +#radius +func get_radius() -> float: + return radius + +func set_radius(val : float) -> void: + radius = val + + if radius == 0: + radius = 0.000000001 + + set_dirty(true) + +#repeat +func get_repeat() -> int: + return repeat + +func set_repeat(val : int) -> void: + repeat = val + + set_dirty(true) diff --git a/game/addons/mat_maker_gd/nodes/transform/color_tiler.gd b/game/addons/mat_maker_gd/nodes/transform/color_tiler.gd new file mode 100644 index 0000000..d106c64 --- /dev/null +++ b/game/addons/mat_maker_gd/nodes/transform/color_tiler.gd @@ -0,0 +1,303 @@ +tool +extends MMNode + +export(Resource) var input : Resource +export(Resource) var in_mask : Resource + +export(Resource) var output : Resource +export(Resource) var instance_map : Resource + +export(Vector2) var tile : Vector2 = Vector2(4, 4) +export(float) var overlap : float = 1 +export(int, "1,4,16") var select_inputs : int = 0 +export(Vector2) var scale : Vector2 = Vector2(0.5, 0.5) +export(float) var fixed_offset : float = 0 +export(float) var rnd_offset : float = 0.25 +export(float) var rnd_rotate : float = 45 +export(float) var rnd_scale : float = 0.2 +export(float) var rnd_opacity : float = 0 +export(bool) var variations : bool = false + +func _init_properties(): + if !input: + input = MMNodeUniversalProperty.new() + input.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_COLOR + input.set_default_value(Color(0, 0, 0, 1)) + + input.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_UNIVERSAL + input.slot_name = ">>> Input " + + if !in_mask: + in_mask = MMNodeUniversalProperty.new() + in_mask.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_FLOAT + in_mask.set_default_value(1) + + in_mask.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_UNIVERSAL + in_mask.slot_name = ">>> Mask " + + if !output: + output = MMNodeUniversalProperty.new() + output.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_IMAGE + + output.output_slot_type = MMNodeUniversalProperty.SLOT_TYPE_IMAGE + + if !instance_map: + instance_map = MMNodeUniversalProperty.new() + instance_map.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_IMAGE + + instance_map.output_slot_type = MMNodeUniversalProperty.SLOT_TYPE_IMAGE + + register_input_property(input) + register_input_property(in_mask) + register_output_property(output) + register_output_property(instance_map) + +func _register_methods(mm_graph_node) -> void: + mm_graph_node.add_slot_label_universal(input) + mm_graph_node.add_slot_label_universal(in_mask) + mm_graph_node.add_slot_texture_universal(output) + mm_graph_node.add_slot_texture_universal(instance_map) + + mm_graph_node.add_slot_vector2("get_tile", "set_tile", "Tile", 1) + mm_graph_node.add_slot_float("get_overlap", "set_overlap", "Overlap", 1) + mm_graph_node.add_slot_enum("get_select_inputs", "set_select_inputs", "Select inputs", [ "1", "4", "16" ]) + mm_graph_node.add_slot_vector2("get_scale", "set_scale", "Scale", 0.01) + mm_graph_node.add_slot_float("get_fixed_offset", "set_fixed_offset", "Fixed Offset", 0.01) + mm_graph_node.add_slot_float("get_rnd_offset", "set_rnd_offset", "Rnd Offset", 0.01) + mm_graph_node.add_slot_float("get_rnd_rotate", "set_rnd_rotate", "Rnd Rotate", 0.1) + mm_graph_node.add_slot_float("get_rnd_scale", "set_rnd_scale", "Rnd Scale", 0.01) + mm_graph_node.add_slot_float("get_rnd_opacity", "set_rnd_opacity", "Rnd Opacity", 0.01) + #mm_graph_node.add_slot_bool("get_variations", "set_variations", "Variations") + +func _render(material) -> void: + var output_img : Image = Image.new() + var instance_map_img : Image = Image.new() + + output_img.create(material.image_size.x, material.image_size.y, false, Image.FORMAT_RGBA8) + instance_map_img.create(material.image_size.x, material.image_size.y, false, Image.FORMAT_RGBA8) + + output_img.lock() + instance_map_img.lock() + + var w : float = material.image_size.x + var h : float = material.image_size.y + + var pseed : float = randf() + randi() + + var ps : float = 1.0 / float(pseed) + + var ix : int = int(material.image_size.x) + var iy : int = int(material.image_size.y) + + for x in range(ix): + for y in range(iy): + var uv : Vector2 = Vector2(x / w, y / h) + + #vec3 $(name_uv)_random_color; + #vec4 $(name_uv)_tiled_output = tiler_$(name)($uv, vec2($tx, $ty), int($overlap), vec2(float($seed)), $(name_uv)_random_color); + var rch : PoolColorArray = tiler_calc(uv, tile, overlap, Vector2(ps, ps)) + + output_img.set_pixel(x, y, rch[1]) + instance_map_img.set_pixel(x, y, rch[0]) + + output_img.unlock() + instance_map_img.unlock() + + output.set_value(output_img) + instance_map.set_value(instance_map_img) + +func _get_value_for(uv : Vector2, pseed : int) -> Color: + return Color() + +#tile +func get_tile() -> Vector2: + return tile + +func set_tile(val : Vector2) -> void: + tile = val + + set_dirty(true) + +#overlap +func get_overlap() -> float: + return overlap + +func set_overlap(val : float) -> void: + overlap = val + + set_dirty(true) + +#select_inputs +func get_select_inputs() -> int: + return select_inputs + +func set_select_inputs(val : int) -> void: + select_inputs = val + + set_dirty(true) + +#scale +func get_scale() -> Vector2: + return scale + +func set_scale(val : Vector2) -> void: + scale = val + + set_dirty(true) + +#fixed_offset +func get_fixed_offset() -> float: + return fixed_offset + +func set_fixed_offset(val : float) -> void: + fixed_offset = val + + set_dirty(true) + +#rnd_offset +func get_rnd_offset() -> float: + return rnd_offset + +func set_rnd_offset(val : float) -> void: + rnd_offset = val + + set_dirty(true) + + +#rnd_rotate +func get_rnd_rotate() -> float: + return rnd_rotate + +func set_rnd_rotate(val : float) -> void: + rnd_rotate = val + + set_dirty(true) + +#rnd_scale +func get_rnd_scale() -> float: + return rnd_scale + +func set_rnd_scale(val : float) -> void: + rnd_scale = val + + set_dirty(true) + +#rnd_opacity +func get_rnd_opacity() -> float: + return rnd_opacity + +func set_rnd_opacity(val : float) -> void: + rnd_opacity = val + + set_dirty(true) + +#variations +func get_variations() -> bool: + return variations + +func set_variations(val : bool) -> void: + variations = val + + set_dirty(true) + +#---------------------- +#color_tiler.mmg +#Tiles several occurences of an input image while adding randomness. + +#vec4 tiler_$(name)(vec2 uv, vec2 tile, int overlap, vec2 _seed, out vec3 random_color) { +# vec4 c = vec4(0.0); +# vec3 rc = vec3(0.0); +# vec3 rc1; +# +# for (int dx = -overlap; dx <= overlap; ++dx) { +# for (int dy = -overlap; dy <= overlap; ++dy) { +# vec2 pos = fract((floor(uv*tile)+vec2(float(dx), float(dy))+vec2(0.5))/tile-vec2(0.5)); +# vec2 seed = rand2(pos+_seed); +# rc1 = rand3(seed); +# pos = fract(pos+vec2($fixed_offset/tile.x, 0.0)*floor(mod(pos.y*tile.y, 2.0))+$offset*seed/tile); +# float mask = $mask(fract(pos+vec2(0.5))); +# if (mask > 0.01) { +# vec2 pv = fract(uv - pos)-vec2(0.5); +# seed = rand2(seed); +# float angle = (seed.x * 2.0 - 1.0) * $rotate * 0.01745329251; +# float ca = cos(angle); +# float sa = sin(angle); +# pv = vec2(ca*pv.x+sa*pv.y, -sa*pv.x+ca*pv.y); +# pv *= (seed.y-0.5)*2.0*$scale+1.0; +# pv /= vec2($scale_x, $scale_y); +# pv += vec2(0.5); +# pv = clamp(pv, vec2(0.0), vec2(1.0)); +# +# $select_inputs +# +# vec4 n = $in.variation(pv, $variations ? seed.x : 0.0); +# +# seed = rand2(seed); +# float na = n.a*mask*(1.0-$opacity*seed.x); +# float a = (1.0-c.a)*(1.0*na); +# +# c = mix(c, n, na); +# rc = mix(rc, rc1, n.a); +# } +# } +# } +# +# random_color = rc; +# return c; +#} + + +#select_inputs enum +#1, " " +#4, "pv = clamp(0.5*(pv+floor(rand2(seed)*2.0)), vec2(0.0), vec2(1.0));" +#16, "pv = clamp(0.25*(pv+floor(rand2(seed)*4.0)), vec2(0.0), vec2(1.0));" + +func tiler_calc(uv : Vector2, tile : Vector2, overlap : int, _seed : Vector2) -> PoolColorArray: + var c : Color = Color() + var rc : Vector3 = Vector3() + var rc1 : Vector3 = Vector3() + + for dx in range(-overlap, overlap): #for (int dx = -overlap; dx <= overlap; ++dx) { + for dy in range(-overlap, overlap): #for (int dy = -overlap; dy <= overlap; ++dy) { + var pos : Vector2 = MMAlgos.fractv2((MMAlgos.floorv2(uv * tile) + Vector2(dx, dy) + Vector2(0.5, 0.5)) / tile - Vector2(0.5, 0.5)) + var vseed : Vector2 = MMAlgos.rand2(pos + _seed) + rc1 = MMAlgos.rand3(vseed) + pos = MMAlgos.fractv2(pos + Vector2(fixed_offset / tile.x, 0.0) * floor(MMAlgos.modf(pos.y * tile.y, 2.0)) + rnd_offset * vseed / tile) + var mask : float = in_mask.get_value(MMAlgos.fractv2(pos + Vector2(0.5, 0.5))) + + if (mask > 0.01): + var pv : Vector2 = MMAlgos.fractv2(uv - pos) - Vector2(0.5, 0.5) + vseed = MMAlgos.rand2(vseed) + var angle : float = (vseed.x * 2.0 - 1.0) * rnd_rotate * 0.01745329251 + var ca : float = cos(angle) + var sa : float = sin(angle) + pv = Vector2(ca * pv.x + sa * pv.y, -sa * pv.x + ca * pv.y) + pv *= (vseed.y-0.5) * 2.0 * rnd_scale + 1.0 + pv /= scale + pv += Vector2(0.5, 0.5) + pv = MMAlgos.clampv2(pv, Vector2(), Vector2(1, 1)) + + #1, " " + #4, "pv = clamp(0.5*(pv+floor(rand2(seed)*2.0)), vec2(0.0), vec2(1.0));" + #16, "pv = clamp(0.25*(pv+floor(rand2(seed)*4.0)), vec2(0.0), vec2(1.0));" + + if select_inputs == 1: + pv = MMAlgos.clampv2(0.5*(pv + MMAlgos.floorv2(MMAlgos.rand2(vseed)*2.0)), Vector2(), Vector2(1, 1)); + elif select_inputs == 2: + pv = MMAlgos.clampv2(0.25*(pv + MMAlgos.floorv2(MMAlgos.rand2(vseed)*4.0)), Vector2(), Vector2(1, 1)); + +# vec4 n = $in.variation(pv, $variations ? seed.x : 0.0); + var n : Color = input.get_value(pv) * mask * (1.0 - rnd_opacity * vseed.x) + + vseed = MMAlgos.rand2(vseed) + var na : float = n.a * mask * (1.0 - rnd_opacity * vseed.x) + var a : float = (1.0 - c.a) * (1.0 * na) + + c = lerp(c, n, na); + rc = lerp(rc, rc1, n.a); + + var pc : PoolColorArray = PoolColorArray() + pc.append(Color(rc.x, rc.y, rc.z, 1)) + pc.append(c) + + return pc diff --git a/game/addons/mat_maker_gd/nodes/transform/kaleidoscope.gd b/game/addons/mat_maker_gd/nodes/transform/kaleidoscope.gd new file mode 100644 index 0000000..22ffff5 --- /dev/null +++ b/game/addons/mat_maker_gd/nodes/transform/kaleidoscope.gd @@ -0,0 +1,60 @@ +tool +extends MMNode + +export(Resource) var image : Resource +export(Resource) var input : Resource +export(int) var count : int = 5 +export(float) var offset : float = 0 + +func _init_properties(): + if !input: + input = MMNodeUniversalProperty.new() + input.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_COLOR + input.set_default_value(Color(0, 0, 0, 1)) + + input.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_UNIVERSAL + input.slot_name = ">>> Input " + + if !image: + image = MMNodeUniversalProperty.new() + image.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_IMAGE + + #image.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_FLOAT + image.output_slot_type = MMNodeUniversalProperty.SLOT_TYPE_IMAGE + #image.force_override = true + + register_input_property(input) + register_output_property(image) + +func _register_methods(mm_graph_node) -> void: + mm_graph_node.add_slot_label_universal(input) + mm_graph_node.add_slot_texture_universal(image) + mm_graph_node.add_slot_int("get_count", "set_count", "Count") + mm_graph_node.add_slot_float("get_offset", "set_offset", "Offset", 0.5) + +func _render(material) -> void: + var img : Image = render_image(material) + + image.set_value(img) + +func _get_value_for(uv : Vector2, pseed : int) -> Color: + #$i(kal_rotate($uv, $count, $offset)) + return input.get_value(MMAlgos.kal_rotate(uv, count, offset)) + +#count +func get_count() -> int: + return count + +func set_count(val : int) -> void: + count = val + + set_dirty(true) + +#offset +func get_offset() -> float: + return offset + +func set_offset(val : float) -> void: + offset = val + + set_dirty(true) diff --git a/game/addons/mat_maker_gd/nodes/transform/mirror.gd b/game/addons/mat_maker_gd/nodes/transform/mirror.gd new file mode 100644 index 0000000..2877a84 --- /dev/null +++ b/game/addons/mat_maker_gd/nodes/transform/mirror.gd @@ -0,0 +1,66 @@ +tool +extends MMNode + +export(Resource) var image : Resource +export(Resource) var input : Resource +export(int, "Horizontal,Vertical") var direction : int = 0 +export(float) var offset : float = 0 + +func _init_properties(): + if !input: + input = MMNodeUniversalProperty.new() + input.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_COLOR + input.set_default_value(Color(0, 0, 0, 1)) + + input.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_UNIVERSAL + input.slot_name = ">>> Input " + + if !image: + image = MMNodeUniversalProperty.new() + image.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_IMAGE + + #image.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_FLOAT + image.output_slot_type = MMNodeUniversalProperty.SLOT_TYPE_IMAGE + #image.force_override = true + + register_input_property(input) + register_output_property(image) + +func _register_methods(mm_graph_node) -> void: + mm_graph_node.add_slot_label_universal(input) + mm_graph_node.add_slot_texture_universal(image) + mm_graph_node.add_slot_enum("get_direction", "set_direction", "Direction", [ "Horizontal", "Vertical" ]) + mm_graph_node.add_slot_float("get_offset", "set_offset", "offset", 0.01) + +func _render(material) -> void: + var img : Image = render_image(material) + + image.set_value(img) + +func _get_value_for(uv : Vector2, pseed : int) -> Color: + #$i(uvmirror_$direction($uv, $offset)) + + if direction == 0: + return input.get_value(MMAlgos.uvmirror_h(uv, offset)) + elif direction == 1: + return input.get_value(MMAlgos.uvmirror_v(uv, offset)) + + return Color(0, 0, 0, 1) + +#direction +func get_direction() -> int: + return direction + +func set_direction(val : int) -> void: + direction = val + + set_dirty(true) + +#offset +func get_offset() -> float: + return offset + +func set_offset(val : float) -> void: + offset = val + + set_dirty(true) diff --git a/game/addons/mat_maker_gd/nodes/transform/repeat.gd b/game/addons/mat_maker_gd/nodes/transform/repeat.gd new file mode 100644 index 0000000..97182c3 --- /dev/null +++ b/game/addons/mat_maker_gd/nodes/transform/repeat.gd @@ -0,0 +1,25 @@ +tool +extends MMNode + +export(Resource) var input : Resource + +func _init_properties(): + if !input: + input = MMNodeUniversalProperty.new() + input.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_COLOR + input.set_default_value(Color(0, 0, 0, 1)) + + input.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_UNIVERSAL + input.slot_name = ">>> Apply >>>" + #input.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_COLOR + input.output_slot_type = MMNodeUniversalProperty.SLOT_TYPE_UNIVERSAL + input.get_value_from_owner = true + + register_input_property(input) + register_output_property(input) + +func _register_methods(mm_graph_node) -> void: + mm_graph_node.add_slot_label_universal(input) + +func _get_property_value(uv : Vector2): + return input.get_value(MMAlgos.fractv2(uv), true) diff --git a/game/addons/mat_maker_gd/nodes/transform/rotate.gd b/game/addons/mat_maker_gd/nodes/transform/rotate.gd new file mode 100644 index 0000000..7652fca --- /dev/null +++ b/game/addons/mat_maker_gd/nodes/transform/rotate.gd @@ -0,0 +1,60 @@ +tool +extends MMNode + +export(Resource) var image : Resource +export(Resource) var input : Resource +export(Vector2) var center : Vector2 = Vector2() +export(float) var rotate : float = 0 + +func _init_properties(): + if !input: + input = MMNodeUniversalProperty.new() + input.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_COLOR + input.set_default_value(Color(0, 0, 0, 1)) + + input.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_UNIVERSAL + input.slot_name = ">>> Input1 " + + if !image: + image = MMNodeUniversalProperty.new() + image.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_IMAGE + + #image.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_FLOAT + image.output_slot_type = MMNodeUniversalProperty.SLOT_TYPE_IMAGE + #image.force_override = true + + register_input_property(input) + register_output_property(image) + +func _register_methods(mm_graph_node) -> void: + mm_graph_node.add_slot_label_universal(input) + mm_graph_node.add_slot_texture_universal(image) + mm_graph_node.add_slot_vector2("get_center", "set_center", "Center", 0.01) + mm_graph_node.add_slot_float("get_rotate", "set_rotate", "Rotate", 0.1) + +func _render(material) -> void: + var img : Image = render_image(material) + + image.set_value(img) + +func _get_value_for(uv : Vector2, pseed : int) -> Color: + #$i(rotate($uv, vec2(0.5+$cx, 0.5+$cy), $rotate*0.01745329251)) + return input.get_value(MMAlgos.rotate(uv, center + Vector2(0.5, 0.5), rotate*0.01745329251)) + +#center +func get_center() -> Vector2: + return center + +func set_center(val : Vector2) -> void: + center = val + + set_dirty(true) + +#rotate +func get_rotate() -> float: + return rotate + +func set_rotate(val : float) -> void: + rotate = val + + set_dirty(true) diff --git a/game/addons/mat_maker_gd/nodes/transform/scale.gd b/game/addons/mat_maker_gd/nodes/transform/scale.gd new file mode 100644 index 0000000..a0bf726 --- /dev/null +++ b/game/addons/mat_maker_gd/nodes/transform/scale.gd @@ -0,0 +1,60 @@ +tool +extends MMNode + +export(Resource) var image : Resource +export(Resource) var input : Resource +export(Vector2) var center : Vector2 = Vector2() +export(Vector2) var scale : Vector2 = Vector2(1, 1) + +func _init_properties(): + if !input: + input = MMNodeUniversalProperty.new() + input.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_COLOR + input.set_default_value(Color(0, 0, 0, 1)) + + input.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_UNIVERSAL + input.slot_name = ">>> Input1 " + + if !image: + image = MMNodeUniversalProperty.new() + image.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_IMAGE + + #image.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_FLOAT + image.output_slot_type = MMNodeUniversalProperty.SLOT_TYPE_IMAGE + #image.force_override = true + + register_input_property(input) + register_output_property(image) + +func _register_methods(mm_graph_node) -> void: + mm_graph_node.add_slot_label_universal(input) + mm_graph_node.add_slot_texture_universal(image) + mm_graph_node.add_slot_vector2("get_center", "set_center", "Center", 0.01) + mm_graph_node.add_slot_vector2("get_scale", "set_scale", "Scale", 0.01) + +func _render(material) -> void: + var img : Image = render_image(material) + + image.set_value(img) + +func _get_value_for(uv : Vector2, pseed : int) -> Color: + #$i(scale($uv, vec2(0.5+$cx, 0.5+$cy), vec2($scale_x, $scale_y))) + return input.get_value(MMAlgos.scale(uv, center + Vector2(0.5, 0.5), scale)) + +#center +func get_center() -> Vector2: + return center + +func set_center(val : Vector2) -> void: + center = val + + set_dirty(true) + +#scale +func get_scale() -> Vector2: + return scale + +func set_scale(val : Vector2) -> void: + scale = val + + set_dirty(true) diff --git a/game/addons/mat_maker_gd/nodes/transform/shear.gd b/game/addons/mat_maker_gd/nodes/transform/shear.gd new file mode 100644 index 0000000..3293781 --- /dev/null +++ b/game/addons/mat_maker_gd/nodes/transform/shear.gd @@ -0,0 +1,77 @@ +tool +extends MMNode + +export(Resource) var image : Resource +export(Resource) var input : Resource +export(int, "Horizontal,Vertical") var direction : int = 0 +export(float) var amount : float = 1 +export(float) var center : float = 0 + +func _init_properties(): + if !input: + input = MMNodeUniversalProperty.new() + input.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_COLOR + input.set_default_value(Color(0, 0, 0, 1)) + + input.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_UNIVERSAL + input.slot_name = ">>> Input " + + if !image: + image = MMNodeUniversalProperty.new() + image.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_IMAGE + + #image.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_FLOAT + image.output_slot_type = MMNodeUniversalProperty.SLOT_TYPE_IMAGE + #image.force_override = true + + register_input_property(input) + register_output_property(image) + +func _register_methods(mm_graph_node) -> void: + mm_graph_node.add_slot_label_universal(input) + mm_graph_node.add_slot_texture_universal(image) + mm_graph_node.add_slot_enum("get_direction", "set_direction", "Direction", [ "Horizontal", "Vertical" ]) + mm_graph_node.add_slot_float("get_amount", "set_amount", "Amount", 0.01) + mm_graph_node.add_slot_float("get_center", "set_center", "Center", 0.01) + +func _render(material) -> void: + var img : Image = render_image(material) + + image.set_value(img) + +func _get_value_for(uv : Vector2, pseed : int) -> Color: + #$in($uv+$amount*($uv.yx-vec2($center))*vec2($direction)) + + if direction == 0: + return input.get_value(uv + amount * (Vector2(uv.y, uv.x) - Vector2(center, center)) * Vector2(1, 0)) + elif direction == 1: + return input.get_value(uv + amount * (Vector2(uv.y, uv.x) - Vector2(center, center)) * Vector2(0, 1)) + + return Color(0, 0, 0, 1) + +#direction +func get_direction() -> int: + return direction + +func set_direction(val : int) -> void: + direction = val + + set_dirty(true) + +#amount +func get_amount() -> float: + return amount + +func set_amount(val : float) -> void: + amount = val + + set_dirty(true) + +#center +func get_center() -> float: + return center + +func set_center(val : float) -> void: + center = val + + set_dirty(true) diff --git a/game/addons/mat_maker_gd/nodes/transform/tiler.gd b/game/addons/mat_maker_gd/nodes/transform/tiler.gd new file mode 100644 index 0000000..ec8f023 --- /dev/null +++ b/game/addons/mat_maker_gd/nodes/transform/tiler.gd @@ -0,0 +1,304 @@ +tool +extends MMNode + +export(Resource) var input : Resource +export(Resource) var in_mask : Resource + +export(Resource) var output : Resource +export(Resource) var instance_map : Resource + +export(Vector2) var tile : Vector2 = Vector2(4, 4) +export(float) var overlap : float = 1 +export(int, "1,4,16") var select_inputs : int = 0 +export(Vector2) var scale : Vector2 = Vector2(0.5, 0.5) +export(float) var fixed_offset : float = 0 +export(float) var rnd_offset : float = 0.25 +export(float) var rnd_rotate : float = 45 +export(float) var rnd_scale : float = 0.2 +export(float) var rnd_value : float = 2 +export(bool) var variations : bool = false + +func _init_properties(): + if !input: + input = MMNodeUniversalProperty.new() + input.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_FLOAT + input.set_default_value(0) + + input.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_UNIVERSAL + input.slot_name = ">>> Input " + + if !in_mask: + in_mask = MMNodeUniversalProperty.new() + in_mask.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_FLOAT + in_mask.set_default_value(1) + + in_mask.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_UNIVERSAL + in_mask.slot_name = ">>> Mask " + + if !output: + output = MMNodeUniversalProperty.new() + output.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_IMAGE + + output.output_slot_type = MMNodeUniversalProperty.SLOT_TYPE_IMAGE + + if !instance_map: + instance_map = MMNodeUniversalProperty.new() + instance_map.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_IMAGE + + instance_map.output_slot_type = MMNodeUniversalProperty.SLOT_TYPE_IMAGE + + register_input_property(input) + register_input_property(in_mask) + register_output_property(output) + register_output_property(instance_map) + +func _register_methods(mm_graph_node) -> void: + mm_graph_node.add_slot_label_universal(input) + mm_graph_node.add_slot_label_universal(in_mask) + mm_graph_node.add_slot_texture_universal(output) + mm_graph_node.add_slot_texture_universal(instance_map) + + mm_graph_node.add_slot_vector2("get_tile", "set_tile", "Tile", 1) + mm_graph_node.add_slot_float("get_overlap", "set_overlap", "Overlap", 1) + mm_graph_node.add_slot_enum("get_select_inputs", "set_select_inputs", "Select inputs", [ "1", "4", "16" ]) + mm_graph_node.add_slot_vector2("get_scale", "set_scale", "Scale", 0.01) + mm_graph_node.add_slot_float("get_fixed_offset", "set_fixed_offset", "Fixed Offset", 0.01) + mm_graph_node.add_slot_float("get_rnd_offset", "set_rnd_offset", "Rnd Offset", 0.01) + mm_graph_node.add_slot_float("get_rnd_rotate", "set_rnd_rotate", "Rnd Rotate", 0.1) + mm_graph_node.add_slot_float("get_rnd_scale", "set_rnd_scale", "Rnd Scale", 0.01) + mm_graph_node.add_slot_float("get_rnd_value", "set_rnd_value", "Rnd Value", 0.01) + #mm_graph_node.add_slot_bool("get_variations", "set_variations", "Variations") + +func _render(material) -> void: + var output_img : Image = Image.new() + var instance_map_img : Image = Image.new() + + output_img.create(material.image_size.x, material.image_size.y, false, Image.FORMAT_RGBA8) + instance_map_img.create(material.image_size.x, material.image_size.y, false, Image.FORMAT_RGBA8) + + output_img.lock() + instance_map_img.lock() + + var w : float = material.image_size.x + var h : float = material.image_size.y + + var pseed : float = randf() + randi() + + var ps : float = 1.0 / float(pseed) + + var ix : int = int(material.image_size.x) + var iy : int = int(material.image_size.y) + + for x in range(ix): + for y in range(iy): + var uv : Vector2 = Vector2(x / w, y / h) + + #vec4 $(name_uv)_rch = tiler_$(name)($uv, vec2($tx, $ty), int($overlap), vec2(float($seed))) + var rch : Color = tiler_calc(uv, tile, overlap, Vector2(ps, ps)) + + #Output, float, Shows the generated pattern + #$(name_uv)_rch.a + var output_img_col : Color = Color(rch.a, rch.a, rch.a, 1) + + #Instance map, rgb, Shows a random color for each instance of the input image + #$(name_uv)_rch.rgb + var instance_map_img_col : Color = Color(rch.r, rch.g, rch.b, 1) + + output_img.set_pixel(x, y, output_img_col) + instance_map_img.set_pixel(x, y, instance_map_img_col) + + output_img.unlock() + instance_map_img.unlock() + + output.set_value(output_img) + instance_map.set_value(instance_map_img) + +func _get_value_for(uv : Vector2, pseed : int) -> Color: + return Color() + +#tile +func get_tile() -> Vector2: + return tile + +func set_tile(val : Vector2) -> void: + tile = val + + set_dirty(true) + +#overlap +func get_overlap() -> float: + return overlap + +func set_overlap(val : float) -> void: + overlap = val + + set_dirty(true) + +#select_inputs +func get_select_inputs() -> int: + return select_inputs + +func set_select_inputs(val : int) -> void: + select_inputs = val + + set_dirty(true) + +#scale +func get_scale() -> Vector2: + return scale + +func set_scale(val : Vector2) -> void: + scale = val + + set_dirty(true) + +#fixed_offset +func get_fixed_offset() -> float: + return fixed_offset + +func set_fixed_offset(val : float) -> void: + fixed_offset = val + + set_dirty(true) + +#rnd_offset +func get_rnd_offset() -> float: + return rnd_offset + +func set_rnd_offset(val : float) -> void: + rnd_offset = val + + set_dirty(true) + + +#rnd_rotate +func get_rnd_rotate() -> float: + return rnd_rotate + +func set_rnd_rotate(val : float) -> void: + rnd_rotate = val + + set_dirty(true) + +#rnd_scale +func get_rnd_scale() -> float: + return rnd_scale + +func set_rnd_scale(val : float) -> void: + rnd_scale = val + + set_dirty(true) + +#rnd_value +func get_rnd_value() -> float: + return rnd_value + +func set_rnd_value(val : float) -> void: + rnd_value = val + + set_dirty(true) + +#variations +func get_variations() -> bool: + return variations + +func set_variations(val : bool) -> void: + variations = val + + set_dirty(true) + +#---------------------- +#tiler.mmg +#Tiles several occurences of an input image while adding randomness. + +#instance +#vec4 tiler_$(name)(vec2 uv, vec2 tile, int overlap, vec2 _seed) { +# float c = 0.0; +# vec3 rc = vec3(0.0); +# vec3 rc1; +# for (int dx = -overlap; dx <= overlap; ++dx) { +# for (int dy = -overlap; dy <= overlap; ++dy) { +# vec2 pos = fract((floor(uv*tile)+vec2(float(dx), float(dy))+vec2(0.5))/tile-vec2(0.5)); +# vec2 seed = rand2(pos+_seed); +# rc1 = rand3(seed); +# pos = fract(pos+vec2($fixed_offset/tile.x, 0.0)*floor(mod(pos.y*tile.y, 2.0))+$offset*seed/tile); +# float mask = $mask(fract(pos+vec2(0.5))); +# +# if (mask > 0.01) { +# vec2 pv = fract(uv - pos)-vec2(0.5); +# seed = rand2(seed); +# float angle = (seed.x * 2.0 - 1.0) * $rotate * 0.01745329251; +# float ca = cos(angle); +# float sa = sin(angle); +# pv = vec2(ca*pv.x+sa*pv.y, -sa*pv.x+ca*pv.y); +# pv *= (seed.y-0.5)*2.0*$scale+1.0; +# pv /= vec2($scale_x, $scale_y); +# pv += vec2(0.5); +# seed = rand2(seed); +# vec2 clamped_pv = clamp(pv, vec2(0.0), vec2(1.0)); +# if (pv.x != clamped_pv.x || pv.y != clamped_pv.y) { +# continue; +# } +# +# $select_inputs +# +# float c1 = $in.variation(pv, $variations ? seed.x : 0.0)*mask*(1.0-$value*seed.x); +# c = max(c, c1); +# rc = mix(rc, rc1, step(c, c1)); +# } +# } +# } +# +# return vec4(rc, c); +#} + +#select_inputs enum +#1, " " +#4, "pv = clamp(0.5*(pv+floor(rand2(seed)*2.0)), vec2(0.0), vec2(1.0));" +#16, "pv = clamp(0.25*(pv+floor(rand2(seed)*4.0)), vec2(0.0), vec2(1.0));" + +func tiler_calc(uv : Vector2, tile : Vector2, overlap : int, _seed : Vector2) -> Color: + var c : float = 0.0 + var rc : Vector3 = Vector3() + var rc1 : Vector3 = Vector3() + + for dx in range(-overlap, overlap): #for (int dx = -overlap; dx <= overlap; ++dx) { + for dy in range(-overlap, overlap): #for (int dy = -overlap; dy <= overlap; ++dy) { + var pos : Vector2 = MMAlgos.fractv2((MMAlgos.floorv2(uv * tile) + Vector2(dx, dy) + Vector2(0.5, 0.5)) / tile - Vector2(0.5, 0.5)) + var vseed : Vector2 = MMAlgos.rand2(pos+_seed) + rc1 = MMAlgos.rand3(vseed) + pos = MMAlgos.fractv2(pos + Vector2(fixed_offset / tile.x, 0.0) * floor(MMAlgos.modf(pos.y * tile.y, 2.0)) + rnd_offset * vseed / tile) + var mask : float = in_mask.get_value(MMAlgos.fractv2(pos + Vector2(0.5, 0.5))) + + if (mask > 0.01): + var pv : Vector2 = MMAlgos.fractv2(uv - pos) - Vector2(0.5, 0.5) + vseed = MMAlgos.rand2(vseed) + var angle : float = (vseed.x * 2.0 - 1.0) * rnd_rotate * 0.01745329251 + var ca : float = cos(angle) + var sa : float = sin(angle) + pv = Vector2(ca * pv.x + sa * pv.y, -sa * pv.x + ca * pv.y) + pv *= (vseed.y-0.5) * 2.0 * rnd_scale + 1.0 + pv /= scale + pv += Vector2(0.5, 0.5) + vseed = MMAlgos.rand2(vseed) + var clamped_pv : Vector2 = MMAlgos.clampv2(pv, Vector2(), Vector2(1, 1)) + + if (pv.x != clamped_pv.x || pv.y != clamped_pv.y): + continue + + #1, " " + #4, "pv = clamp(0.5*(pv+floor(rand2(seed)*2.0)), vec2(0.0), vec2(1.0));" + #16, "pv = clamp(0.25*(pv+floor(rand2(seed)*4.0)), vec2(0.0), vec2(1.0));" + + if select_inputs == 1: + pv = MMAlgos.clampv2(0.5*(pv + MMAlgos.floorv2(MMAlgos.rand2(vseed)*2.0)), Vector2(), Vector2(1, 1)); + elif select_inputs == 2: + pv = MMAlgos.clampv2(0.25*(pv + MMAlgos.floorv2(MMAlgos.rand2(vseed)*4.0)), Vector2(), Vector2(1, 1)); + + #float c1 = $in.variation(pv, $variations ? vseed.x : 0.0) * mask * (1.0-$value*vseed.x) + var c1 : float = input.get_value(pv) * mask * (1.0 - rnd_value * vseed.x) + c = max(c, c1) + rc = lerp(rc, rc1, MMAlgos.step(c, c1)) + + return Color(rc.x, rc.y, rc.z, c) + diff --git a/game/addons/mat_maker_gd/nodes/transform/transform.gd b/game/addons/mat_maker_gd/nodes/transform/transform.gd new file mode 100644 index 0000000..c095ca5 --- /dev/null +++ b/game/addons/mat_maker_gd/nodes/transform/transform.gd @@ -0,0 +1,129 @@ +tool +extends MMNode + +export(Resource) var image : Resource +export(Resource) var input : Resource + +export(Resource) var translate_x : Resource +export(Resource) var translate_y : Resource +export(Resource) var rotate : Resource +export(Resource) var scale_x : Resource +export(Resource) var scale_y : Resource +export(int, "Clamp,Repeat,Extend") var mode : int = 0 + +func _init_properties(): + if !input: + input = MMNodeUniversalProperty.new() + input.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_COLOR + input.set_default_value(Color(0, 0, 0, 1)) + + input.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_UNIVERSAL + input.slot_name = ">>> Input " + + if !image: + image = MMNodeUniversalProperty.new() + image.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_IMAGE + + #image.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_FLOAT + image.output_slot_type = MMNodeUniversalProperty.SLOT_TYPE_IMAGE + #image.force_override = true + + if !translate_x: + translate_x = MMNodeUniversalProperty.new() + translate_x.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_FLOAT + translate_x.set_default_value(0) + translate_x.value_step = 0.01 + + translate_x.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_UNIVERSAL + translate_x.slot_name = "Translate X" + + if !translate_y: + translate_y = MMNodeUniversalProperty.new() + translate_y.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_FLOAT + translate_y.set_default_value(0) + translate_y.value_step = 0.01 + + translate_y.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_UNIVERSAL + translate_y.slot_name = "Translate Y" + + if !rotate: + rotate = MMNodeUniversalProperty.new() + rotate.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_FLOAT + rotate.set_default_value(0) + rotate.value_step = 0.01 + + rotate.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_UNIVERSAL + rotate.slot_name = "Rotate" + + if !scale_x: + scale_x = MMNodeUniversalProperty.new() + scale_x.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_FLOAT + scale_x.set_default_value(1) + scale_x.value_step = 0.01 + + scale_x.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_UNIVERSAL + scale_x.slot_name = "Scale X" + + if !scale_y: + scale_y = MMNodeUniversalProperty.new() + scale_y.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_FLOAT + scale_y.set_default_value(1) + scale_y.value_step = 0.01 + + scale_y.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_UNIVERSAL + scale_y.slot_name = "Scale Y" + + register_input_property(input) + register_output_property(image) + register_input_property(translate_x) + register_input_property(translate_y) + register_input_property(rotate) + register_input_property(scale_x) + register_input_property(scale_y) + +func _register_methods(mm_graph_node) -> void: + mm_graph_node.add_slot_label_universal(input) + mm_graph_node.add_slot_texture_universal(image) + + mm_graph_node.add_slot_float_universal(translate_x) + mm_graph_node.add_slot_float_universal(translate_y) + mm_graph_node.add_slot_float_universal(rotate) + mm_graph_node.add_slot_float_universal(scale_x) + mm_graph_node.add_slot_float_universal(scale_y) + + mm_graph_node.add_slot_enum("get_mode", "set_mode", "Mode", [ "Clamp", "Repeat", "Extend" ]) + +func _render(material) -> void: + var img : Image = render_image(material) + + image.set_value(img) + +func _get_value_for(uv : Vector2, pseed : int) -> Color: + #$i($mode(transform2($uv, vec2($translate_x*(2.0*$tx($uv)-1.0), $translate_y*(2.0*$ty($uv)-1.0)), $rotate*0.01745329251*(2.0*$r($uv)-1.0), vec2($scale_x*(2.0*$sx($uv)-1.0), $scale_y*(2.0*$sy($uv)-1.0)))))", + + #Mode: + #Clamp -> transform2_clamp + #Repeat -> fract + #Extend -> "" + + var tr : Vector2 = Vector2(translate_x.get_default_value() * (2.0 * translate_x.get_value_or_zero(uv) - 1.0), translate_y.get_default_value() *(2.0 * translate_y.get_value_or_zero(uv) - 1.0)) + var rot : float = rotate.get_default_value() * 0.01745329251*(2.0 * rotate.get_value_or_zero(uv) - 1.0) + var sc : Vector2 = Vector2(scale_x.get_default_value() *(2.0 * scale_x.get_value_or_zero(uv) - 1.0), scale_y.get_default_value() *(2.0 * scale_y.get_value_or_zero(uv) - 1.0)) + + var nuv : Vector2 = MMAlgos.transform2(uv, tr, rot, sc) + + if mode == 0: + nuv = MMAlgos.transform2_clamp(nuv) + elif mode == 1: + nuv = MMAlgos.fractv2(nuv) + + return input.get_value(nuv) + +#mode +func get_mode() -> int: + return mode + +func set_mode(val : int) -> void: + mode = val + + set_dirty(true) diff --git a/game/addons/mat_maker_gd/nodes/transform/translate.gd b/game/addons/mat_maker_gd/nodes/transform/translate.gd new file mode 100644 index 0000000..e3423b1 --- /dev/null +++ b/game/addons/mat_maker_gd/nodes/transform/translate.gd @@ -0,0 +1,49 @@ +tool +extends MMNode + +export(Resource) var image : Resource +export(Resource) var input : Resource +export(Vector2) var translation : Vector2 = Vector2() + +func _init_properties(): + if !input: + input = MMNodeUniversalProperty.new() + input.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_COLOR + input.set_default_value(Color(0, 0, 0, 1)) + + input.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_UNIVERSAL + input.slot_name = ">>> Input1 " + + if !image: + image = MMNodeUniversalProperty.new() + image.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_IMAGE + + #image.input_slot_type = MMNodeUniversalProperty.SLOT_TYPE_FLOAT + image.output_slot_type = MMNodeUniversalProperty.SLOT_TYPE_IMAGE + #image.force_override = true + + register_input_property(input) + register_output_property(image) + +func _register_methods(mm_graph_node) -> void: + mm_graph_node.add_slot_label_universal(input) + mm_graph_node.add_slot_texture_universal(image) + mm_graph_node.add_slot_vector2("get_translation", "set_translation", "Translation", 0.01) + +func _render(material) -> void: + var img : Image = render_image(material) + + image.set_value(img) + +func _get_value_for(uv : Vector2, pseed : int) -> Color: + #$i($uv-vec2($translate_x, $translate_y)) + return input.get_value(uv - translation) + +#translation +func get_translation() -> Vector2: + return translation + +func set_translation(val : Vector2) -> void: + translation = val + + set_dirty(true) diff --git a/game/addons/mat_maker_gd/nodes/uniform/greyscale_uniform.gd b/game/addons/mat_maker_gd/nodes/uniform/greyscale_uniform.gd new file mode 100644 index 0000000..e59354e --- /dev/null +++ b/game/addons/mat_maker_gd/nodes/uniform/greyscale_uniform.gd @@ -0,0 +1,25 @@ +tool +extends MMNode + +export(Resource) var uniform : Resource + +func _init_properties(): + if !uniform: + uniform = MMNodeUniversalProperty.new() + uniform.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_FLOAT + uniform.set_default_value(0.5) + uniform.slot_name = "Value (Color)" + uniform.value_step = 0.01 + uniform.value_range = Vector2(0, 1) + + uniform.output_slot_type = MMNodeUniversalProperty.SLOT_TYPE_COLOR + + register_output_property(uniform) + +func _register_methods(mm_graph_node) -> void: + mm_graph_node.add_slot_float_universal(uniform) + +func _get_value_for(uv : Vector2, pseed : int) -> Color: + var f : float = uniform.get_value(uv) + + return Color(f, f, f, 1) diff --git a/game/addons/mat_maker_gd/nodes/uniform/uniform.gd b/game/addons/mat_maker_gd/nodes/uniform/uniform.gd new file mode 100644 index 0000000..bccefa1 --- /dev/null +++ b/game/addons/mat_maker_gd/nodes/uniform/uniform.gd @@ -0,0 +1,20 @@ +tool +extends MMNode + +export(Resource) var uniform : Resource + +func _init_properties(): + if !uniform: + uniform = MMNodeUniversalProperty.new() + uniform.default_type = MMNodeUniversalProperty.DEFAULT_TYPE_COLOR + uniform.set_default_value(Color(1, 1, 1, 1)) + + uniform.output_slot_type = MMNodeUniversalProperty.SLOT_TYPE_COLOR + + register_output_property(uniform) + +func _register_methods(mm_graph_node) -> void: + mm_graph_node.add_slot_color_universal(uniform) + +func _get_value_for(uv : Vector2, pseed : int) -> Color: + return uniform.get_value(uv) diff --git a/game/addons/mat_maker_gd/plugin.cfg b/game/addons/mat_maker_gd/plugin.cfg new file mode 100644 index 0000000..0431311 --- /dev/null +++ b/game/addons/mat_maker_gd/plugin.cfg @@ -0,0 +1,7 @@ +[plugin] + +name="mat_maker_gd" +description="" +author="Relintai" +version="" +script="plugin.gd" diff --git a/game/addons/mat_maker_gd/plugin.gd b/game/addons/mat_maker_gd/plugin.gd new file mode 100644 index 0000000..1895a6b --- /dev/null +++ b/game/addons/mat_maker_gd/plugin.gd @@ -0,0 +1,86 @@ +tool +extends EditorPlugin + +#var editor_packed_scene = preload("res://addons/mat_maker_gd/editor/MatMakerGDEditor.tscn") +#var editor_scene = null +#var tool_button : ToolButton = null + +var folders : PoolStringArray = [ + "res://addons/mat_maker_gd/nodes/uniform", + "res://addons/mat_maker_gd/nodes/noise", + "res://addons/mat_maker_gd/nodes/filter", + "res://addons/mat_maker_gd/nodes/gradient", + "res://addons/mat_maker_gd/nodes/pattern", + "res://addons/mat_maker_gd/nodes/sdf2d", + "res://addons/mat_maker_gd/nodes/sdf3d", + "res://addons/mat_maker_gd/nodes/transform", + "res://addons/mat_maker_gd/nodes/simple", + "res://addons/mat_maker_gd/nodes/other", +] + +func _enter_tree(): + for s in folders: + evaluate_folder(s) + +func evaluate_folder(folder : String) -> void: + var category : String = folder.substr(folder.find_last("/") + 1) + + var dir = Directory.new() + if dir.open(folder) == OK: + dir.list_dir_begin() + var file_name = dir.get_next() + while file_name != "": + if !dir.current_is_dir(): + #print("Found file: " + file_name) + var file : String = folder + "/" + file_name + + MMAlgos.register_node_script(category, file) + + file_name = dir.get_next() + else: + print("An error occurred when trying to access the path.") + +#func _enter_tree(): +# editor_scene = editor_packed_scene.instance() +# editor_scene.set_plugin(self) +# tool_button = add_control_to_bottom_panel(editor_scene, "MMGD") +# tool_button.hide() + +#func _exit_tree(): +# remove_control_from_bottom_panel(editor_scene) +# if editor_scene: +# editor_scene.queue_free() +# editor_scene = null +# tool_button = null + +#func handles(object): +# return object is MMMaterial +# +#func edit(object): +# #if editor_scene: +# # make_bottom_panel_item_visible(editor_scene) +# +# if object is MMMaterial: +# editor_scene.set_mmmaterial(object as MMMaterial) +# +#func make_visible(visible): +# if tool_button: +# if visible: +# tool_button.show() +# else: +# #if tool_button.pressed: +# # tool_button.pressed = false +# +# if !tool_button.pressed: +# tool_button.hide() + +func get_plugin_icon(): + return null + +func get_plugin_name(): + return "MatMakerGD" + +func has_main_screen(): + return false + + diff --git a/game/addons/mat_maker_gd/widgets/color_picker_button/color_picker_button.gd b/game/addons/mat_maker_gd/widgets/color_picker_button/color_picker_button.gd new file mode 100644 index 0000000..cf0e819 --- /dev/null +++ b/game/addons/mat_maker_gd/widgets/color_picker_button/color_picker_button.gd @@ -0,0 +1,16 @@ +tool +extends ColorPickerButton + +func get_drag_data(_position): + var preview = ColorRect.new() + preview.color = color + preview.rect_min_size = Vector2(32, 32) + set_drag_preview(preview) + return color + +func can_drop_data(_position, data) -> bool: + return typeof(data) == TYPE_COLOR + +func drop_data(_position, data) -> void: + color = data + emit_signal("color_changed", color) diff --git a/game/addons/mat_maker_gd/widgets/color_picker_popup/color_picker_popup.tscn b/game/addons/mat_maker_gd/widgets/color_picker_popup/color_picker_popup.tscn new file mode 100644 index 0000000..c4003f3 --- /dev/null +++ b/game/addons/mat_maker_gd/widgets/color_picker_popup/color_picker_popup.tscn @@ -0,0 +1,14 @@ +[gd_scene format=2] + +[node name="ColorPickerPopup" type="PopupPanel"] +margin_right = 316.0 +margin_bottom = 470.0 + +[node name="ColorPicker" type="ColorPicker" parent="."] +margin_left = 4.0 +margin_top = 4.0 +margin_right = 312.0 +margin_bottom = 466.0 +__meta__ = { +"_edit_use_anchors_": false +} diff --git a/game/addons/mat_maker_gd/widgets/curve_edit/control_point.gd b/game/addons/mat_maker_gd/widgets/curve_edit/control_point.gd new file mode 100644 index 0000000..5fd5e48 --- /dev/null +++ b/game/addons/mat_maker_gd/widgets/curve_edit/control_point.gd @@ -0,0 +1,70 @@ +tool +extends Control + +var MMCurve = preload("res://addons/mat_maker_gd/nodes/bases/curve_base.gd") + +var moving : bool = false + +var min_x : float +var max_x : float +var min_y : float +var max_y : float + +const OFFSET : Vector2 = Vector2(3, 3) + +signal moved(index) +signal removed(index) + +func _ready(): + pass # Replace with function body. + +func _draw(): +# var current_theme : Theme = get_node("/root/MainWindow").theme +# var color : Color = current_theme.get_color("font_color", "Label") + + var color : Color = Color(1, 1, 1, 1) + for c in get_children(): + if c.visible: + draw_line(OFFSET, c.rect_position+OFFSET, color) + + draw_rect(Rect2(0, 0, 7, 7), color) + +#p : MMCurve.Point +func initialize(p) -> void: + rect_position = get_parent().transform_point(p.p)-OFFSET + if p.ls != INF: + $LeftSlope.rect_position = $LeftSlope.distance*(get_parent().rect_size*Vector2(1.0, -p.ls)).normalized() + if p.rs != INF: + $RightSlope.rect_position = $RightSlope.distance*(get_parent().rect_size*Vector2(1.0, -p.rs)).normalized() + +func set_constraint(x : float, X : float, y : float, Y : float) -> void: + min_x = x + max_x = X + min_y = y + max_y = Y + +func _on_ControlPoint_gui_input(event): + if event is InputEventMouseButton: + if event.button_index == BUTTON_LEFT: + if event.pressed: + moving = true + else: + moving = false + get_parent().update_controls() + elif event.button_index == BUTTON_RIGHT and event.pressed: + emit_signal("removed", get_index()) + elif moving and event is InputEventMouseMotion: + rect_position += event.relative + if rect_position.x < min_x: + rect_position.x = min_x + elif rect_position.x > max_x: + rect_position.x = max_x + if rect_position.y < min_y: + rect_position.y = min_y + elif rect_position.y > max_y: + rect_position.y = max_y + emit_signal("moved", get_index()) + +func update_tangents() -> void: + update() + emit_signal("moved", get_index()) diff --git a/game/addons/mat_maker_gd/widgets/curve_edit/control_point.tscn b/game/addons/mat_maker_gd/widgets/curve_edit/control_point.tscn new file mode 100644 index 0000000..03bfd28 --- /dev/null +++ b/game/addons/mat_maker_gd/widgets/curve_edit/control_point.tscn @@ -0,0 +1,39 @@ +[gd_scene load_steps=3 format=2] + +[ext_resource path="res://addons/mat_maker_gd/widgets/curve_edit/slope_point.gd" type="Script" id=1] +[ext_resource path="res://addons/mat_maker_gd/widgets/curve_edit/control_point.gd" type="Script" id=2] + +[node name="ControlPoint" type="Control"] +margin_left = 56.9864 +margin_top = 33.8615 +margin_right = 63.9864 +margin_bottom = 40.8615 +rect_min_size = Vector2( 7, 7 ) +script = ExtResource( 2 ) +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="LeftSlope" type="Control" parent="."] +margin_left = -18.5235 +margin_right = -11.5235 +margin_bottom = 7.0 +rect_min_size = Vector2( 7, 7 ) +script = ExtResource( 1 ) +__meta__ = { +"_edit_use_anchors_": false +} +distance = -30.0 + +[node name="RightSlope" type="Control" parent="."] +margin_left = 15.6919 +margin_right = 22.6919 +margin_bottom = 7.0 +script = ExtResource( 1 ) +__meta__ = { +"_edit_use_anchors_": false +} +distance = 30.0 +[connection signal="gui_input" from="." to="." method="_on_ControlPoint_gui_input"] +[connection signal="gui_input" from="LeftSlope" to="LeftSlope" method="_on_ControlPoint_gui_input"] +[connection signal="gui_input" from="RightSlope" to="RightSlope" method="_on_ControlPoint_gui_input"] diff --git a/game/addons/mat_maker_gd/widgets/curve_edit/curve_dialog.gd b/game/addons/mat_maker_gd/widgets/curve_edit/curve_dialog.gd new file mode 100644 index 0000000..df8f79a --- /dev/null +++ b/game/addons/mat_maker_gd/widgets/curve_edit/curve_dialog.gd @@ -0,0 +1,37 @@ +tool +extends WindowDialog + +var MMCurve = preload("res://addons/mat_maker_gd/nodes/bases/curve_base.gd") + +var previous_points : Array +var curve + +signal curve_changed(curve) + +# Called when the node enters the scene tree for the first time. +func _ready(): + pass # Replace with function body. + +func _on_CurveDialog_popup_hide(): + queue_free() + +func _on_OK_pressed(): + emit_signal("curve_changed", curve) + curve.curve_changed() + + queue_free() + +func _on_Cancel_pressed(): + curve.set_points(previous_points) + emit_signal("curve_changed", curve) + + queue_free() + +func edit_curve(c) -> void: + curve = c + previous_points = curve.get_points() + $VBoxContainer/EditorContainer/CurveEditor.set_curve(curve) + popup_centered() + +func _on_CurveEditor_value_changed(value): + emit_signal("curve_changed", value) diff --git a/game/addons/mat_maker_gd/widgets/curve_edit/curve_dialog.tscn b/game/addons/mat_maker_gd/widgets/curve_edit/curve_dialog.tscn new file mode 100644 index 0000000..4898a89 --- /dev/null +++ b/game/addons/mat_maker_gd/widgets/curve_edit/curve_dialog.tscn @@ -0,0 +1,81 @@ +[gd_scene load_steps=3 format=2] + +[ext_resource path="res://addons/mat_maker_gd/widgets/curve_edit/curve_editor.tscn" type="PackedScene" id=1] +[ext_resource path="res://addons/mat_maker_gd/widgets/curve_edit/curve_dialog.gd" type="Script" id=2] + +[node name="CurveDialog" type="WindowDialog"] +anchor_right = 1.0 +anchor_bottom = 1.0 +margin_left = 307.0 +margin_top = 151.0 +margin_right = -347.0 +margin_bottom = -174.0 +window_title = "Edit curve" +script = ExtResource( 2 ) +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="VBoxContainer" type="VBoxContainer" parent="."] +anchor_right = 1.0 +anchor_bottom = 1.0 +margin_left = 5.0 +margin_top = 5.0 +margin_right = -5.0 +margin_bottom = -5.0 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="EditorContainer" type="MarginContainer" parent="VBoxContainer"] +margin_right = 616.0 +margin_bottom = 353.0 +rect_clip_content = true +size_flags_horizontal = 3 +size_flags_vertical = 3 +custom_constants/margin_right = 4 +custom_constants/margin_top = 4 +custom_constants/margin_left = 4 +custom_constants/margin_bottom = 4 + +[node name="CurveEditor" parent="VBoxContainer/EditorContainer" instance=ExtResource( 1 )] +anchor_right = 0.0 +anchor_bottom = 0.0 +margin_left = 4.0 +margin_top = 4.0 +margin_right = 612.0 +margin_bottom = 349.0 +size_flags_vertical = 3 + +[node name="HSeparator" type="HSeparator" parent="VBoxContainer"] +margin_top = 357.0 +margin_right = 616.0 +margin_bottom = 361.0 + +[node name="HBoxContainer" type="HBoxContainer" parent="VBoxContainer"] +margin_top = 365.0 +margin_right = 616.0 +margin_bottom = 385.0 + +[node name="Control" type="Control" parent="VBoxContainer/HBoxContainer"] +margin_right = 488.0 +margin_bottom = 20.0 +size_flags_horizontal = 3 + +[node name="OK" type="Button" parent="VBoxContainer/HBoxContainer"] +margin_left = 492.0 +margin_right = 552.0 +margin_bottom = 20.0 +rect_min_size = Vector2( 60, 0 ) +text = "OK" + +[node name="Cancel" type="Button" parent="VBoxContainer/HBoxContainer"] +margin_left = 556.0 +margin_right = 616.0 +margin_bottom = 20.0 +rect_min_size = Vector2( 60, 0 ) +text = "Cancel" +[connection signal="popup_hide" from="." to="." method="_on_CurveDialog_popup_hide"] +[connection signal="value_changed" from="VBoxContainer/EditorContainer/CurveEditor" to="." method="_on_CurveEditor_value_changed"] +[connection signal="pressed" from="VBoxContainer/HBoxContainer/OK" to="." method="_on_OK_pressed"] +[connection signal="pressed" from="VBoxContainer/HBoxContainer/Cancel" to="." method="_on_Cancel_pressed"] diff --git a/game/addons/mat_maker_gd/widgets/curve_edit/curve_edit.gd b/game/addons/mat_maker_gd/widgets/curve_edit/curve_edit.gd new file mode 100644 index 0000000..885adbc --- /dev/null +++ b/game/addons/mat_maker_gd/widgets/curve_edit/curve_edit.gd @@ -0,0 +1,24 @@ +tool +extends Control + +var MMCurve = preload("res://addons/mat_maker_gd/nodes/bases/curve_base.gd") + +var value = null setget set_value + +signal updated(curve) + +func set_value(v) -> void: + value = v + $CurveView.set_curve(value) + $CurveView.update() + +func _on_CurveEdit_pressed(): + var dialog = preload("res://addons/mat_maker_gd/widgets/curve_edit/curve_dialog.tscn").instance() + add_child(dialog) + dialog.connect("curve_changed", self, "on_value_changed") + dialog.edit_curve(value) + +func on_value_changed(v) -> void: + #set_value(v) + emit_signal("updated", v) + $CurveView.update() diff --git a/game/addons/mat_maker_gd/widgets/curve_edit/curve_edit.tscn b/game/addons/mat_maker_gd/widgets/curve_edit/curve_edit.tscn new file mode 100644 index 0000000..9c018b5 --- /dev/null +++ b/game/addons/mat_maker_gd/widgets/curve_edit/curve_edit.tscn @@ -0,0 +1,22 @@ +[gd_scene load_steps=3 format=2] + +[ext_resource path="res://addons/mat_maker_gd/widgets/curve_edit/curve_edit.gd" type="Script" id=1] +[ext_resource path="res://addons/mat_maker_gd/widgets/curve_edit/curve_view.tscn" type="PackedScene" id=2] + +[node name="CurveEdit" type="Button"] +anchor_left = 1.0 +anchor_right = 1.0 +anchor_bottom = 1.0 +margin_left = -1280.0 +margin_right = -1220.0 +margin_bottom = -700.0 +rect_min_size = Vector2( 60, 20 ) +focus_mode = 1 +script = ExtResource( 1 ) +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="CurveView" parent="." instance=ExtResource( 2 )] + +[connection signal="pressed" from="." to="." method="_on_CurveEdit_pressed"] diff --git a/game/addons/mat_maker_gd/widgets/curve_edit/curve_editor.gd b/game/addons/mat_maker_gd/widgets/curve_edit/curve_editor.gd new file mode 100644 index 0000000..abbe57f --- /dev/null +++ b/game/addons/mat_maker_gd/widgets/curve_edit/curve_editor.gd @@ -0,0 +1,80 @@ +tool +extends "res://addons/mat_maker_gd/widgets/curve_edit/curve_view.gd" + +signal value_changed(value) + +func _ready(): + update_controls() + +func set_curve(c) -> void: + curve = c + update() + update_controls() + +func update_controls() -> void: + if !curve: + return + + for c in get_children(): + c.queue_free() + + var points = curve.get_points() + + for i in points.size(): + var p = points[i] + var control_point = preload("res://addons/mat_maker_gd/widgets/curve_edit/control_point.tscn").instance() + add_child(control_point) + control_point.initialize(p) + control_point.rect_position = transform_point(p.p)-control_point.OFFSET + + if i == 0 or i == points.size()-1: + control_point.set_constraint(control_point.rect_position.x, control_point.rect_position.x, -control_point.OFFSET.y, rect_size.y-control_point.OFFSET.y) + if i == 0: + control_point.get_child(0).visible = false + else: + control_point.get_child(1).visible = false + else: + var min_x = transform_point(points[i-1].p).x+1 + var max_x = transform_point(points[i+1].p).x-1 + control_point.set_constraint(min_x, max_x, -control_point.OFFSET.y, rect_size.y-control_point.OFFSET.y) + + control_point.connect("moved", self, "_on_ControlPoint_moved") + control_point.connect("removed", self, "_on_ControlPoint_removed") + + emit_signal("value_changed", curve) + +func _on_ControlPoint_moved(index): + var points : Array = curve.get_points() + + var control_point = get_child(index) + points[index].p = reverse_transform_point(control_point.rect_position+control_point.OFFSET) + + if control_point.has_node("LeftSlope"): + var slope_vector = control_point.get_node("LeftSlope").rect_position/rect_size + if slope_vector.x != 0: + points[index].ls = -slope_vector.y / slope_vector.x + + if control_point.has_node("RightSlope"): + var slope_vector = control_point.get_node("RightSlope").rect_position/rect_size + if slope_vector.x != 0: + points[index].rs = -slope_vector.y / slope_vector.x + + curve.set_points(points, false) + update() + emit_signal("value_changed", curve) + +func _on_ControlPoint_removed(index): + if curve.remove_point(index): + update() + update_controls() + +func _on_CurveEditor_gui_input(event): + if event is InputEventMouseButton: + if event.button_index == BUTTON_LEFT and event.doubleclick: + var new_point_position = reverse_transform_point(get_local_mouse_position()) + curve.add_point(new_point_position.x, new_point_position.y, 0.0, 0.0) + update_controls() + +func _on_resize() -> void: + ._on_resize() + update_controls() diff --git a/game/addons/mat_maker_gd/widgets/curve_edit/curve_editor.tscn b/game/addons/mat_maker_gd/widgets/curve_edit/curve_editor.tscn new file mode 100644 index 0000000..d8c7935 --- /dev/null +++ b/game/addons/mat_maker_gd/widgets/curve_edit/curve_editor.tscn @@ -0,0 +1,14 @@ +[gd_scene load_steps=3 format=2] + +[ext_resource path="res://addons/mat_maker_gd/widgets/curve_edit/curve_view.tscn" type="PackedScene" id=1] +[ext_resource path="res://addons/mat_maker_gd/widgets/curve_edit/curve_editor.gd" type="Script" id=2] + +[node name="CurveEditor" instance=ExtResource( 1 )] +margin_left = 10.0 +margin_top = 10.0 +margin_right = -10.0 +margin_bottom = -10.0 +mouse_filter = 0 +script = ExtResource( 2 ) + +[connection signal="gui_input" from="." to="." method="_on_CurveEditor_gui_input"] diff --git a/game/addons/mat_maker_gd/widgets/curve_edit/curve_view.gd b/game/addons/mat_maker_gd/widgets/curve_edit/curve_view.gd new file mode 100644 index 0000000..b6ea144 --- /dev/null +++ b/game/addons/mat_maker_gd/widgets/curve_edit/curve_view.gd @@ -0,0 +1,70 @@ +tool +extends Control + +var MMCurve = preload("res://addons/mat_maker_gd/nodes/bases/curve_base.gd") + +export var show_axes : bool = false + +var curve #: MMCurve + +func _ready() -> void: +# curve = MMCurve.new() + connect("resized", self, "_on_resize") + update() + +func set_curve(val) -> void: + curve = val + update() + +func transform_point(p : Vector2) -> Vector2: + return (Vector2(0.0, 1.0)+Vector2(1.0, -1.0)*p)*rect_size + +func reverse_transform_point(p : Vector2) -> Vector2: + return Vector2(0.0, 1.0)+Vector2(1.0, -1.0)*p/rect_size + +func _draw(): + if !curve: + return + +# var current_theme : Theme = get_node("/root/MainWindow").theme +# +# var bg = current_theme.get_stylebox("panel", "Panel").bg_color +# var fg = current_theme.get_color("font_color", "Label") +# +# var axes_color : Color = bg.linear_interpolate(fg, 0.25) +# var curve_color : Color = bg.linear_interpolate(fg, 0.75) + + var axes_color : Color = Color(0.9, 0.9, 0.9, 1) + var curve_color : Color = Color(1, 1, 1, 1) + + if show_axes: + for i in range(5): + var p = transform_point(0.25*Vector2(i, i)) + draw_line(Vector2(p.x, 0), Vector2(p.x, rect_size.y-1), axes_color) + draw_line(Vector2(0, p.y), Vector2(rect_size.x-1, p.y), axes_color) + + var points = curve.get_points() + + for i in range(points.size() - 1): + var p1 = points[i].p + var p2 = points[i+1].p + var d = (p2.x-p1.x)/3.0 + var yac = p1.y+d*points[i].rs + var ybc = p2.y-d*points[i+1].ls + var p = transform_point(p1) + var count : int = max(1, int((transform_point(p2).x-p.x/5.0))) + + for tt in range(count): + var t = (tt+1.0)/count + var omt = (1.0 - t) + var omt2 = omt * omt + var omt3 = omt2 * omt + var t2 = t * t + var t3 = t2 * t + var x = p1.x+(p2.x-p1.x)*t + var np = transform_point(Vector2(x, p1.y*omt3 + yac*omt2*t*3.0 + ybc*omt*t2*3.0 + p2.y*t3)) + draw_line(p, np, curve_color) + p = np + +func _on_resize() -> void: + update() diff --git a/game/addons/mat_maker_gd/widgets/curve_edit/curve_view.tscn b/game/addons/mat_maker_gd/widgets/curve_edit/curve_view.tscn new file mode 100644 index 0000000..ffae7ac --- /dev/null +++ b/game/addons/mat_maker_gd/widgets/curve_edit/curve_view.tscn @@ -0,0 +1,16 @@ +[gd_scene load_steps=2 format=2] + +[ext_resource path="res://addons/mat_maker_gd/widgets/curve_edit/curve_view.gd" type="Script" id=1] + +[node name="CurveView" type="Control"] +anchor_right = 1.0 +anchor_bottom = 1.0 +margin_left = 4.0 +margin_top = 4.0 +margin_right = -4.0 +margin_bottom = -4.0 +mouse_filter = 2 +script = ExtResource( 1 ) +__meta__ = { +"_edit_use_anchors_": false +} diff --git a/game/addons/mat_maker_gd/widgets/curve_edit/slope_point.gd b/game/addons/mat_maker_gd/widgets/curve_edit/slope_point.gd new file mode 100644 index 0000000..bcbaa4e --- /dev/null +++ b/game/addons/mat_maker_gd/widgets/curve_edit/slope_point.gd @@ -0,0 +1,49 @@ +tool +extends Control + +export var distance : float + +var moving = false + +const OFFSET = -Vector2(0, 0) + +func _ready(): + pass # Replace with function body. + +func _draw(): +# var current_theme : Theme = get_node("/root/MainWindow").theme +# var color : Color = current_theme.get_color("font_color", "Label") + + var color : Color = Color(1, 1, 1, 1) + + draw_circle(Vector2(3.0, 3.0), 3.0, color) + +func _on_ControlPoint_gui_input(event): + if event is InputEventMouseButton: + if event.button_index == BUTTON_LEFT: + if event.pressed: + if event.doubleclick: + var parent = get_parent() + var vector : Vector2 + if get_index() == 0: + vector = parent.rect_position-parent.get_parent().get_child(parent.get_index()-1).rect_position + else: + vector = parent.get_parent().get_child(parent.get_index()+1).rect_position-parent.rect_position + vector = distance*vector.normalized() + rect_position = vector-OFFSET + if event.control: + get_parent().get_child(1-get_index()).rect_position = -vector-OFFSET + get_parent().update_tangents() + else: + moving = true + else: + moving = false + elif moving and event is InputEventMouseMotion: + var vector = get_global_mouse_position()-get_parent().get_global_rect().position+OFFSET + vector *= sign(vector.x) + vector = distance*vector.normalized() + rect_position = vector-OFFSET + if event.control: + get_parent().get_child(1-get_index()).rect_position = -vector-OFFSET + + get_parent().update_tangents() diff --git a/game/addons/mat_maker_gd/widgets/float_edit/float_edit.gd b/game/addons/mat_maker_gd/widgets/float_edit/float_edit.gd new file mode 100644 index 0000000..cdb73e5 --- /dev/null +++ b/game/addons/mat_maker_gd/widgets/float_edit/float_edit.gd @@ -0,0 +1,139 @@ +tool +extends LineEdit + +export var value : float = 0.5 setget set_value +export var min_value : float = 0.0 setget set_min_value +export var max_value : float = 1.0 setget set_max_value +export var step : float = 0.0 setget set_step +export var float_only : bool = false + +var sliding : bool = false +var start_position : float +var last_position : float +var start_value : float +var modifiers : int +var from_lower_bound : bool = false +var from_upper_bound : bool = false + +onready var slider = $Slider +onready var cursor = $Slider/Cursor + +signal value_changed(value) + +func _ready() -> void: + do_update() + +func set_value(v) -> void: + if v is float: + value = v + do_update() + $Slider.visible = true + elif v is String and !float_only: + text = v + $Slider.visible = false + +func set_min_value(v : float) -> void: + min_value = v + do_update() + +func set_max_value(v : float) -> void: + max_value = v + do_update() + +func set_step(v : float) -> void: + step = v + do_update() + +func do_update(update_text : bool = true) -> void: + if update_text and $Slider.visible: + text = str(value) + if cursor != null: + if max_value != min_value: + cursor.rect_position.x = (clamp(value, min_value, max_value)-min_value)*(slider.rect_size.x-cursor.rect_size.x)/(max_value-min_value) + else: + cursor.rect_position.x = 0 + +func get_modifiers(event): + var new_modifiers = 0 + if event.shift: + new_modifiers |= 1 + if event.control: + new_modifiers |= 2 + if event.alt: + new_modifiers |= 4 + return new_modifiers + +func _on_LineEdit_gui_input(event : InputEvent) -> void: + if !$Slider.visible or !editable: + return + if event is InputEventMouseButton and event.button_index == BUTTON_LEFT: + if event.is_pressed(): + last_position = event.position.x + start_position = last_position + start_value = value + sliding = true + from_lower_bound = value <= min_value + from_upper_bound = value >= max_value + modifiers = get_modifiers(event) + else: + sliding = false + elif sliding and event is InputEventMouseMotion and event.button_mask == BUTTON_MASK_LEFT: + var new_modifiers = get_modifiers(event) + if new_modifiers != modifiers: + start_position = last_position + start_value = value + modifiers = new_modifiers + else: + last_position = event.position.x + var delta : float = last_position-start_position + var current_step = step + if event.control: + delta *= 0.2 + elif event.shift: + delta *= 5.0 + if event.alt: + current_step *= 0.01 + var v : float = start_value+sign(delta)*pow(abs(delta)*0.005, 2)*abs(max_value - min_value) + if current_step != 0: + v = min_value+floor((v - min_value)/current_step)*current_step + if !from_lower_bound and v < min_value: + v = min_value + if !from_upper_bound and v > max_value: + v = max_value + set_value(v) + select(0, 0) + emit_signal("value_changed", value) + release_focus() + elif event is InputEventKey and !event.echo: + match event.scancode: + KEY_SHIFT, KEY_CONTROL, KEY_ALT: + start_position = last_position + start_value = value + modifiers = get_modifiers(event) + +func _on_LineEdit_text_changed(new_text : String) -> void: + if new_text.is_valid_float(): + value = new_text.to_float() + do_update(false) + +func _on_LineEdit_text_entered(new_text : String, release = true) -> void: + if new_text.is_valid_float(): + value = new_text.to_float() + do_update() + emit_signal("value_changed", value) + $Slider.visible = true + elif float_only: + do_update() + emit_signal("value_changed", value) + $Slider.visible = true + else: + emit_signal("value_changed", new_text) + $Slider.visible = false + if release: + release_focus() + +func _on_FloatEdit_focus_entered(): + select_all() + +func _on_LineEdit_focus_exited() -> void: + _on_LineEdit_text_entered(text, false) diff --git a/game/addons/mat_maker_gd/widgets/float_edit/float_edit.tscn b/game/addons/mat_maker_gd/widgets/float_edit/float_edit.tscn new file mode 100644 index 0000000..7f13ead --- /dev/null +++ b/game/addons/mat_maker_gd/widgets/float_edit/float_edit.tscn @@ -0,0 +1,46 @@ +[gd_scene load_steps=2 format=2] + +[ext_resource path="res://addons/mat_maker_gd/widgets/float_edit/float_edit.gd" type="Script" id=1] + +[node name="FloatEdit" type="LineEdit"] +anchor_left = 1.0 +anchor_right = 1.0 +anchor_bottom = 1.0 +margin_left = -1280.0 +margin_right = -1222.0 +margin_bottom = -696.0 +focus_mode = 1 +text = "0.5" +max_length = 100 +context_menu_enabled = false +caret_blink = true +script = ExtResource( 1 ) +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="Slider" type="ColorRect" parent="."] +anchor_top = 1.0 +anchor_right = 1.0 +anchor_bottom = 1.0 +margin_left = 2.0 +margin_top = -3.0 +margin_right = -2.0 +margin_bottom = -3.0 +rect_min_size = Vector2( 0, 2 ) +mouse_filter = 2 +color = Color( 0.501961, 0.501961, 0.501961, 1 ) + +[node name="Cursor" type="ColorRect" parent="Slider"] +margin_right = 3.0 +margin_bottom = 1.0 +rect_min_size = Vector2( 3, 2 ) +mouse_filter = 2 + +[connection signal="focus_entered" from="." to="." method="_on_FloatEdit_focus_entered"] +[connection signal="focus_exited" from="." to="." method="_on_LineEdit_focus_exited"] +[connection signal="gui_input" from="." to="." method="_on_LineEdit_gui_input"] +[connection signal="resized" from="." to="." method="do_update"] +[connection signal="text_changed" from="." to="." method="_on_LineEdit_text_changed"] +[connection signal="text_entered" from="." to="." method="_on_LineEdit_text_entered"] +[connection signal="resized" from="Slider" to="." method="do_update"] diff --git a/game/addons/mat_maker_gd/widgets/gradient_editor/gradient_editor.gd b/game/addons/mat_maker_gd/widgets/gradient_editor/gradient_editor.gd new file mode 100644 index 0000000..f1c2625 --- /dev/null +++ b/game/addons/mat_maker_gd/widgets/gradient_editor/gradient_editor.gd @@ -0,0 +1,288 @@ +tool +extends Control + +class GradientCursor: + extends Control + + var color : Color + var sliding : bool = false + + onready var label : Label = get_parent().get_node("Value") + + const WIDTH : int = 10 + + func _ready() -> void: + rect_position = Vector2(0, 15) + rect_size = Vector2(WIDTH, 15) + + func _draw() -> void: +# warning-ignore:integer_division + var polygon : PoolVector2Array = PoolVector2Array([Vector2(0, 5), Vector2(WIDTH/2, 0), Vector2(WIDTH, 5), Vector2(WIDTH, 15), Vector2(0, 15), Vector2(0, 5)]) + var c = color + c.a = 1.0 + draw_colored_polygon(polygon, c) + draw_polyline(polygon, Color(0.0, 0.0, 0.0) if color.v > 0.5 else Color(1.0, 1.0, 1.0)) + + func _gui_input(ev) -> void: + if ev is InputEventMouseButton: + if ev.button_index == BUTTON_LEFT: + if ev.doubleclick: + get_parent().save_color_state() + get_parent().select_color(self, ev.global_position) + elif ev.pressed: + get_parent().save_color_state() + sliding = true + label.visible = true + label.text = "%.03f" % get_cursor_position() + else: + if sliding: + get_parent().undo_redo_save_color_state() + + sliding = false + label.visible = false + elif ev.button_index == BUTTON_RIGHT and get_parent().get_sorted_cursors().size() > 2: + var parent = get_parent() + parent.save_color_state() + parent.remove_child(self) + parent.update_value() + parent.undo_redo_save_color_state() + queue_free() + elif ev is InputEventMouseMotion and (ev.button_mask & BUTTON_MASK_LEFT) != 0 and sliding: + rect_position.x += get_local_mouse_position().x + if ev.control: + rect_position.x = round(get_cursor_position()*20.0)*0.05*(get_parent().rect_size.x - WIDTH) + rect_position.x = min(max(0, rect_position.x), get_parent().rect_size.x-rect_size.x) + get_parent().update_value() + label.text = "%.03f" % get_cursor_position() + + func get_cursor_position() -> float: + return rect_position.x / (get_parent().rect_size.x - WIDTH) + + func set_color(c) -> void: + color = c + get_parent().update_value() + update() + + static func sort(a, b) -> bool: + return a.get_position() < b.get_position() + + func can_drop_data(_position, data) -> bool: + return typeof(data) == TYPE_COLOR + + func drop_data(_position, data) -> void: + set_color(data) + +var graph_node = null +var value = null setget set_value +export var embedded : bool = true +var _undo_redo : UndoRedo = null + +signal updated(value) + +var _saved_points : PoolRealArray = PoolRealArray() + +func _init(): + connect("resized", self, "on_resized") + +func ignore_changes(val): + graph_node.ignore_changes(val) + +func save_color_state(): + var p : PoolRealArray = value.points + _saved_points.resize(0) + + for v in p: + _saved_points.push_back(v) + + ignore_changes(true) + +func undo_redo_save_color_state(): + var op : PoolRealArray + var np : PoolRealArray + + for v in _saved_points: + op.push_back(v) + + for v in value.get_points(): + np.push_back(v) + + _undo_redo.create_action("MMGD: gradient colors changed") + _undo_redo.add_do_method(value, "set_points", np) + _undo_redo.add_undo_method(value, "set_points", op) + _undo_redo.commit_action() + + ignore_changes(false) + +func set_undo_redo(ur : UndoRedo) -> void: + _undo_redo = ur + +#func get_gradient_from_data(data): +# if typeof(data) == TYPE_ARRAY: +# return data +# elif typeof(data) == TYPE_DICTIONARY: +# if data.has("parameters") and data.parameters.has("gradient"): +# return data.parameters.gradient +# if data.has("type") and data.type == "Gradient": +# return data +# return null + +#func get_drag_data(_position : Vector2): +# var data = 0#MMType.serialize_value(value) +# var preview = ColorRect.new() +# preview.rect_size = Vector2(64, 24) +# preview.material = $Gradient.material +# set_drag_preview(preview) +# return data +# +#func can_drop_data(_position : Vector2, data) -> bool: +# return get_gradient_from_data(data) != null +# +#func drop_data(_position : Vector2, data) -> void: +# var gradient = get_gradient_from_data(data) +# #if gradient != null: +# #set_value(MMType.deserialize_value(gradient)) + +func set_value(v) -> void: + value = v + + update_preview() + call_deferred("update_cursors") + +func update_cursors() -> void: + for c in get_children(): + if c is GradientCursor: + remove_child(c) + c.free() + + var vs : int = value.get_point_count() + + for i in range(vs): + add_cursor(value.get_point_value(i) * (rect_size.x-GradientCursor.WIDTH), value.get_point_color(i)) + + $Interpolation.selected = value.interpolation_type + +func update_value() -> void: + value.clear() + + var sc : Array = get_sorted_cursors() + + var points : PoolRealArray = PoolRealArray() + + for c in sc: + + points.push_back(c.rect_position.x/(rect_size.x-GradientCursor.WIDTH)) + + var color : Color = c.color + + points.push_back(color.r) + points.push_back(color.g) + points.push_back(color.b) + points.push_back(color.a) + + value.set_points(points) + + update_preview() + +func add_cursor(x, color) -> void: + var cursor = GradientCursor.new() + add_child(cursor) + cursor.rect_position.x = x + cursor.color = color + +func _gui_input(ev) -> void: + if ev is InputEventMouseButton and ev.button_index == 1 and ev.doubleclick: + if ev.position.y > 15: + var p = clamp(ev.position.x, 0, rect_size.x-GradientCursor.WIDTH) + save_color_state() + add_cursor(p, get_gradient_color(p)) + update_value() + undo_redo_save_color_state() + elif embedded: + var popup = load("res://addons/mat_maker_gd/widgets/gradient_editor/gradient_popup.tscn").instance() + add_child(popup) + var popup_size = popup.rect_size + popup.popup(Rect2(ev.global_position, Vector2(0, 0))) + popup.set_global_position(ev.global_position-Vector2(popup_size.x / 2, popup_size.y)) + popup.init(value, graph_node, _undo_redo) + popup.connect("updated", self, "set_value") + popup.connect("popup_hide", popup, "queue_free") + +# Showing a color picker popup to change a cursor's color + +var active_cursor + +func select_color(cursor, position) -> void: + active_cursor = cursor + var color_picker_popup = preload("res://addons/mat_maker_gd/widgets/color_picker_popup/color_picker_popup.tscn").instance() + add_child(color_picker_popup) + var color_picker = color_picker_popup.get_node("ColorPicker") + color_picker.color = cursor.color + color_picker.connect("color_changed", cursor, "set_color") + color_picker_popup.rect_position = position + color_picker_popup.connect("popup_hide", self, "undo_redo_save_color_state") + color_picker_popup.connect("popup_hide", color_picker_popup, "queue_free") + color_picker_popup.popup() + +# Calculating a color from the gradient and generating the shader + +func get_sorted_cursors() -> Array: + var array = [] + for c in get_children(): + if c is GradientCursor: + array.append(c) + array.sort_custom(GradientCursor, "sort") + return array + +func generate_preview_image() -> void: + var tex : ImageTexture = $Gradient.texture + + if !tex: + tex = ImageTexture.new() + $Gradient.texture = tex + + var img : Image = tex.get_data() + + var w : float = $Gradient.rect_size.x + var h : float = $Gradient.rect_size.y + + if !img: + img = Image.new() + + if img.get_size().x != w || img.get_size().y != h: + img.create(w, h, false, Image.FORMAT_RGBA8) + + img.lock() + + for i in range(w): + var x : float = float(i) / float(w) + var col : Color = value.get_gradient_color(x) + + for j in range(h): + img.set_pixel(i, j, col) + + img.unlock() + + tex.create_from_image(img, 0) + +func get_gradient_color(x) -> Color: + return value.get_gradient_color(x / (rect_size.x - GradientCursor.WIDTH)) + +func update_preview() -> void: + call_deferred("generate_preview_image") + +func _on_Interpolation_item_selected(ID) -> void: + ignore_changes(true) + + _undo_redo.create_action("MMGD: gradient interpolation_type changed") + _undo_redo.add_do_method(value, "set_interpolation_type", ID) + _undo_redo.add_undo_method(value, "set_interpolation_type", value.interpolation_type) + _undo_redo.commit_action() + + ignore_changes(false) + + update_preview() + +func on_resized() -> void: + if value: + update_preview() + call_deferred("update_cursors") diff --git a/game/addons/mat_maker_gd/widgets/gradient_editor/gradient_editor.tscn b/game/addons/mat_maker_gd/widgets/gradient_editor/gradient_editor.tscn new file mode 100644 index 0000000..5dc99e5 --- /dev/null +++ b/game/addons/mat_maker_gd/widgets/gradient_editor/gradient_editor.tscn @@ -0,0 +1,94 @@ +[gd_scene load_steps=10 format=2] + +[ext_resource path="res://addons/mat_maker_gd/widgets/gradient_editor/gradient_editor.gd" type="Script" id=1] +[ext_resource path="res://addons/mat_maker_gd/icons/icons.tres" type="Texture" id=2] + +[sub_resource type="Shader" id=1] +code = "shader_type canvas_item; + +void fragment() { + COLOR = vec4(vec3(2.0*fract(0.5*(floor(0.12*FRAGCOORD.x)+floor(0.125*FRAGCOORD.y)))), 1.0); +}" + +[sub_resource type="ShaderMaterial" id=2] +shader = SubResource( 1 ) + +[sub_resource type="Theme" id=5] + +[sub_resource type="AtlasTexture" id=6] +flags = 7 +atlas = ExtResource( 2 ) +region = Rect2( 96, 0, 32, 16 ) + +[sub_resource type="AtlasTexture" id=7] +flags = 7 +atlas = ExtResource( 2 ) +region = Rect2( 64, 0, 32, 16 ) + +[sub_resource type="AtlasTexture" id=8] +flags = 7 +atlas = ExtResource( 2 ) +region = Rect2( 64, 16, 32, 16 ) + +[sub_resource type="AtlasTexture" id=9] +flags = 7 +atlas = ExtResource( 2 ) +region = Rect2( 96, 16, 32, 16 ) + +[node name="Control" type="Control"] +margin_right = 120.0 +margin_bottom = 30.0 +rect_min_size = Vector2( 120, 32 ) +focus_mode = 1 +script = ExtResource( 1 ) +embedded = true + +[node name="Background" type="ColorRect" parent="."] +material = SubResource( 2 ) +anchor_right = 1.0 +margin_left = 4.0 +margin_right = -4.0 +margin_bottom = 15.0 +rect_min_size = Vector2( 112, 17 ) +mouse_filter = 2 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="Gradient" type="TextureRect" parent="."] +anchor_right = 1.0 +margin_left = 4.0 +margin_right = -4.0 +margin_bottom = 15.0 +rect_min_size = Vector2( 112, 17 ) +mouse_filter = 2 +theme = SubResource( 5 ) +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="Interpolation" type="OptionButton" parent="."] +margin_left = 0.418457 +margin_top = -2.90374 +margin_right = 73.4185 +margin_bottom = 19.0963 +rect_scale = Vector2( 0.5, 0.5 ) +icon = SubResource( 6 ) +items = [ "", SubResource( 7 ), false, 0, null, "", SubResource( 6 ), false, 1, null, "", SubResource( 8 ), false, 2, null, "", SubResource( 9 ), false, 3, null ] +selected = 1 + +[node name="Value" type="Label" parent="."] +anchor_right = 1.0 +margin_top = -1.0 +margin_bottom = 14.0 +custom_colors/font_color = Color( 1, 1, 1, 1 ) +custom_colors/font_color_shadow = Color( 0, 0, 0, 1 ) +custom_constants/shadow_offset_x = 1 +custom_constants/shadow_offset_y = 1 +custom_constants/shadow_as_outline = 1 +align = 1 +__meta__ = { +"_edit_use_anchors_": false +} + +[connection signal="item_selected" from="Interpolation" to="." method="_on_Interpolation_item_selected"] diff --git a/game/addons/mat_maker_gd/widgets/gradient_editor/gradient_popup.gd b/game/addons/mat_maker_gd/widgets/gradient_editor/gradient_popup.gd new file mode 100644 index 0000000..466c12c --- /dev/null +++ b/game/addons/mat_maker_gd/widgets/gradient_editor/gradient_popup.gd @@ -0,0 +1,15 @@ +tool +extends Popup + +signal updated(value) + +func init(value, graph_node, undo_redo) -> void: + $Panel/Control.set_undo_redo(undo_redo) + $Panel/Control.graph_node = graph_node + $Panel/Control.set_value(value) + +func _on_Control_updated(value) -> void: + emit_signal("updated", value) + +func _on_GradientPopup_popup_hide() -> void: + queue_free() diff --git a/game/addons/mat_maker_gd/widgets/gradient_editor/gradient_popup.tscn b/game/addons/mat_maker_gd/widgets/gradient_editor/gradient_popup.tscn new file mode 100644 index 0000000..1b9c5b1 --- /dev/null +++ b/game/addons/mat_maker_gd/widgets/gradient_editor/gradient_popup.tscn @@ -0,0 +1,31 @@ +[gd_scene load_steps=4 format=2] + +[ext_resource path="res://addons/mat_maker_gd/widgets/gradient_editor/gradient_popup.gd" type="Script" id=1] +[ext_resource path="res://addons/mat_maker_gd/widgets/gradient_editor/gradient_editor.tscn" type="PackedScene" id=2] + +[sub_resource type="StyleBoxFlat" id=1] +bg_color = Color( 0, 0, 0.25098, 0.752941 ) + +[node name="GradientPopup" type="Popup"] +margin_right = 632.0 +margin_bottom = 49.0 +size_flags_horizontal = 0 +size_flags_vertical = 0 +script = ExtResource( 1 ) + +[node name="Panel" type="Panel" parent="."] +margin_right = 632.0 +margin_bottom = 49.0 +custom_styles/panel = SubResource( 1 ) + +[node name="Control" parent="Panel" instance=ExtResource( 2 )] +anchor_right = 1.0 +anchor_bottom = 1.0 +margin_left = 10.0 +margin_top = 10.0 +margin_right = -10.0 +margin_bottom = -10.0 +embedded = false + +[connection signal="popup_hide" from="." to="." method="_on_GradientPopup_popup_hide"] +[connection signal="updated" from="Panel/Control" to="." method="_on_Control_updated"] diff --git a/game/addons/mat_maker_gd/widgets/image_picker_button/image_picker_button.gd b/game/addons/mat_maker_gd/widgets/image_picker_button/image_picker_button.gd new file mode 100644 index 0000000..73072e1 --- /dev/null +++ b/game/addons/mat_maker_gd/widgets/image_picker_button/image_picker_button.gd @@ -0,0 +1,46 @@ +tool +extends TextureButton + + +var image_path = "" + + +signal on_file_selected(f) + + +func _ready(): + texture_normal = ImageTexture.new() + +func do_set_image_path(path) -> void: + if path == null: + return + image_path = path + + texture_normal.load(image_path) + +func set_image_path(path) -> void: + do_set_image_path(path) + emit_signal("on_file_selected", path) + +func _on_ImagePicker_pressed(): + var dialog = preload("res://addons/mat_maker_gd/windows/file_dialog/file_dialog.tscn").instance() + add_child(dialog) + dialog.rect_min_size = Vector2(500, 500) + dialog.access = FileDialog.ACCESS_FILESYSTEM + dialog.mode = FileDialog.MODE_OPEN_FILE + dialog.add_filter("*.bmp;BMP Image") + dialog.add_filter("*.exr;EXR Image") + dialog.add_filter("*.hdr;Radiance HDR Image") + dialog.add_filter("*.jpg,*.jpeg;JPEG Image") + dialog.add_filter("*.png;PNG Image") + dialog.add_filter("*.svg;SVG Image") + dialog.add_filter("*.tga;TGA Image") + dialog.add_filter("*.webp;WebP Image") + var files = dialog.select_files() + while files is GDScriptFunctionState: + files = yield(files, "completed") + if files.size() > 0: + set_image_path(files[0]) + +func on_drop_image_file(file_name : String) -> void: + set_image_path(file_name) diff --git a/game/addons/mat_maker_gd/widgets/image_picker_button/image_picker_button.tscn b/game/addons/mat_maker_gd/widgets/image_picker_button/image_picker_button.tscn new file mode 100644 index 0000000..e374a08 --- /dev/null +++ b/game/addons/mat_maker_gd/widgets/image_picker_button/image_picker_button.tscn @@ -0,0 +1,20 @@ +[gd_scene load_steps=3 format=2] + +[ext_resource path="res://addons/mat_maker_gd/widgets/image_picker_button/image_picker_button.gd" type="Script" id=2] + +[sub_resource type="ImageTexture" id=1] + +[node name="ImagePicker" type="TextureButton"] +margin_right = 64.0 +margin_bottom = 64.0 +rect_min_size = Vector2( 64, 64 ) +rect_clip_content = true +texture_normal = SubResource( 1 ) +expand = true +stretch_mode = 5 +script = ExtResource( 2 ) +__meta__ = { +"_edit_use_anchors_": false +} + +[connection signal="pressed" from="." to="." method="_on_ImagePicker_pressed"] diff --git a/game/addons/mat_maker_gd/widgets/polygon_edit/control_point.gd b/game/addons/mat_maker_gd/widgets/polygon_edit/control_point.gd new file mode 100644 index 0000000..156957f --- /dev/null +++ b/game/addons/mat_maker_gd/widgets/polygon_edit/control_point.gd @@ -0,0 +1,33 @@ +tool +extends Control + +var moving : bool = false + +const OFFSET : Vector2 = Vector2(3, 3) + +signal moved(index) +signal removed(index) + +func _draw(): +# var current_theme : Theme = get_node("/root/MainWindow").theme +# var color : Color = current_theme.get_color("font_color", "Label") + + var color : Color = Color(1, 1, 1, 1) + draw_rect(Rect2(0, 0, 7, 7), color) + +func initialize(p : Vector2) -> void: + rect_position = get_parent().transform_point(p) - OFFSET + +func _on_ControlPoint_gui_input(event): + if event is InputEventMouseButton: + if event.button_index == BUTTON_LEFT: + if event.pressed: + moving = true + else: + moving = false + get_parent().update_controls() + elif event.button_index == BUTTON_RIGHT and event.pressed: + emit_signal("removed", get_index()) + elif moving and event is InputEventMouseMotion: + rect_position += event.relative + emit_signal("moved", get_index()) diff --git a/game/addons/mat_maker_gd/widgets/polygon_edit/control_point.tscn b/game/addons/mat_maker_gd/widgets/polygon_edit/control_point.tscn new file mode 100644 index 0000000..2d445f3 --- /dev/null +++ b/game/addons/mat_maker_gd/widgets/polygon_edit/control_point.tscn @@ -0,0 +1,15 @@ +[gd_scene load_steps=2 format=2] + +[ext_resource path="res://addons/mat_maker_gd/widgets/polygon_edit/control_point.gd" type="Script" id=1] + +[node name="ControlPoint" type="Control"] +margin_left = 56.9864 +margin_top = 33.8615 +margin_right = 63.9864 +margin_bottom = 40.8615 +rect_min_size = Vector2( 7, 7 ) +script = ExtResource( 1 ) +__meta__ = { +"_edit_use_anchors_": false +} +[connection signal="gui_input" from="." to="." method="_on_ControlPoint_gui_input"] diff --git a/game/addons/mat_maker_gd/widgets/polygon_edit/polygon_dialog.gd b/game/addons/mat_maker_gd/widgets/polygon_edit/polygon_dialog.gd new file mode 100644 index 0000000..da96c7a --- /dev/null +++ b/game/addons/mat_maker_gd/widgets/polygon_edit/polygon_dialog.gd @@ -0,0 +1,46 @@ +tool +extends WindowDialog + +export var closed : bool = true setget set_closed +var previous_points : PoolVector2Array +var polygon + +signal polygon_changed(polygon) + +func set_closed(c : bool = true): + closed = c + window_title = "Edit polygon" if closed else "Edit polyline" + $VBoxContainer/EditorContainer/PolygonEditor.set_closed(closed) + +func _on_CurveDialog_popup_hide(): +# emit_signal("return_polygon", null) + queue_free() + pass + +func _on_OK_pressed(): + emit_signal("polygon_changed", polygon) + polygon.polygon_changed() + + queue_free() + +func _on_Cancel_pressed(): + polygon.set_points(previous_points) + emit_signal("polygon_changed", polygon) + + queue_free() + +func edit_polygon(poly): + polygon = poly + previous_points = polygon.points + + $VBoxContainer/EditorContainer/PolygonEditor.set_polygon(polygon) + popup_centered() + + #var result = yield(self, "return_polygon") + + #queue_free() + + #return result + +func _on_PolygonEditor_value_changed(value): + emit_signal("polygon_changed", value) diff --git a/game/addons/mat_maker_gd/widgets/polygon_edit/polygon_dialog.tscn b/game/addons/mat_maker_gd/widgets/polygon_edit/polygon_dialog.tscn new file mode 100644 index 0000000..1bf6da5 --- /dev/null +++ b/game/addons/mat_maker_gd/widgets/polygon_edit/polygon_dialog.tscn @@ -0,0 +1,81 @@ +[gd_scene load_steps=3 format=2] + +[ext_resource path="res://addons/mat_maker_gd/widgets/polygon_edit/polygon_editor.tscn" type="PackedScene" id=1] +[ext_resource path="res://addons/mat_maker_gd/widgets/polygon_edit/polygon_dialog.gd" type="Script" id=2] + +[node name="PolygonDialog" type="WindowDialog"] +anchor_right = 1.0 +anchor_bottom = 1.0 +margin_left = 307.0 +margin_top = 151.0 +margin_right = -508.0 +margin_bottom = -70.0 +window_title = "Edit polygon" +script = ExtResource( 2 ) +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="VBoxContainer" type="VBoxContainer" parent="."] +anchor_right = 1.0 +anchor_bottom = 1.0 +margin_left = 5.0 +margin_top = 5.0 +margin_right = -5.0 +margin_bottom = -5.0 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="EditorContainer" type="MarginContainer" parent="VBoxContainer"] +margin_right = 455.0 +margin_bottom = 457.0 +rect_clip_content = true +size_flags_horizontal = 3 +size_flags_vertical = 3 +custom_constants/margin_right = 4 +custom_constants/margin_top = 4 +custom_constants/margin_left = 4 +custom_constants/margin_bottom = 4 + +[node name="PolygonEditor" parent="VBoxContainer/EditorContainer" instance=ExtResource( 1 )] +anchor_right = 0.0 +anchor_bottom = 0.0 +margin_left = 4.0 +margin_top = 4.0 +margin_right = 451.0 +margin_bottom = 453.0 + +[node name="HSeparator" type="HSeparator" parent="VBoxContainer"] +margin_top = 461.0 +margin_right = 455.0 +margin_bottom = 465.0 + +[node name="HBoxContainer" type="HBoxContainer" parent="VBoxContainer"] +margin_top = 469.0 +margin_right = 455.0 +margin_bottom = 489.0 + +[node name="Control" type="Control" parent="VBoxContainer/HBoxContainer"] +margin_right = 327.0 +margin_bottom = 20.0 +size_flags_horizontal = 3 + +[node name="OK" type="Button" parent="VBoxContainer/HBoxContainer"] +margin_left = 331.0 +margin_right = 391.0 +margin_bottom = 20.0 +rect_min_size = Vector2( 60, 0 ) +text = "OK" + +[node name="Cancel" type="Button" parent="VBoxContainer/HBoxContainer"] +margin_left = 395.0 +margin_right = 455.0 +margin_bottom = 20.0 +rect_min_size = Vector2( 60, 0 ) +text = "Cancel" + +[connection signal="popup_hide" from="." to="." method="_on_CurveDialog_popup_hide"] +[connection signal="value_changed" from="VBoxContainer/EditorContainer/PolygonEditor" to="." method="_on_PolygonEditor_value_changed"] +[connection signal="pressed" from="VBoxContainer/HBoxContainer/OK" to="." method="_on_OK_pressed"] +[connection signal="pressed" from="VBoxContainer/HBoxContainer/Cancel" to="." method="_on_Cancel_pressed"] diff --git a/game/addons/mat_maker_gd/widgets/polygon_edit/polygon_edit.gd b/game/addons/mat_maker_gd/widgets/polygon_edit/polygon_edit.gd new file mode 100644 index 0000000..e8febfd --- /dev/null +++ b/game/addons/mat_maker_gd/widgets/polygon_edit/polygon_edit.gd @@ -0,0 +1,34 @@ +tool +extends Control + +var MMPolygon = preload("res://addons/mat_maker_gd/nodes/bases/polygon_base.gd") + +export var closed : bool = true setget set_closed +var value = null setget set_value + +signal updated(polygon) + +func set_closed(c : bool = true): + closed = c + $PolygonView.set_closed(c) + +func set_value(v) -> void: + value = v + $PolygonView.set_polygon(value) + $PolygonView.update() + +func _on_PolygonEdit_pressed(): + var dialog = preload("res://addons/mat_maker_gd/widgets/polygon_edit/polygon_dialog.tscn").instance() + dialog.set_closed(closed) + add_child(dialog) + + dialog.connect("polygon_changed", self, "on_value_changed") + + dialog.edit_polygon(value) + + + +func on_value_changed(v) -> void: + #set_value(v) + emit_signal("updated", v) + $PolygonView.update() diff --git a/game/addons/mat_maker_gd/widgets/polygon_edit/polygon_edit.tscn b/game/addons/mat_maker_gd/widgets/polygon_edit/polygon_edit.tscn new file mode 100644 index 0000000..ccea5f9 --- /dev/null +++ b/game/addons/mat_maker_gd/widgets/polygon_edit/polygon_edit.tscn @@ -0,0 +1,26 @@ +[gd_scene load_steps=3 format=2] + +[ext_resource path="res://addons/mat_maker_gd/widgets/polygon_edit/polygon_edit.gd" type="Script" id=1] +[ext_resource path="res://addons/mat_maker_gd/widgets/polygon_edit/polygon_view.tscn" type="PackedScene" id=2] + +[node name="PolygonEdit" type="Button"] +anchor_left = 1.0 +anchor_right = 1.0 +anchor_bottom = 1.0 +margin_left = -1280.0 +margin_right = -1248.0 +margin_bottom = -688.0 +rect_min_size = Vector2( 32, 32 ) +focus_mode = 1 +script = ExtResource( 1 ) +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="PolygonView" parent="." instance=ExtResource( 2 )] +anchor_right = 1.0 +anchor_bottom = 1.0 +margin_right = 0.0 +margin_bottom = 0.0 + +[connection signal="pressed" from="." to="." method="_on_PolygonEdit_pressed"] diff --git a/game/addons/mat_maker_gd/widgets/polygon_edit/polygon_editor.gd b/game/addons/mat_maker_gd/widgets/polygon_edit/polygon_editor.gd new file mode 100644 index 0000000..90c9d01 --- /dev/null +++ b/game/addons/mat_maker_gd/widgets/polygon_edit/polygon_editor.gd @@ -0,0 +1,57 @@ +tool +extends "res://addons/mat_maker_gd/widgets/polygon_edit/polygon_view.gd" + +signal value_changed(value) + +func _ready(): + update_controls() + +func set_polygon(p) -> void: + polygon = p + update() + update_controls() + +func update_controls() -> void: + for c in get_children(): + c.queue_free() + + if !polygon: + return + + for i in polygon.points.size(): + var p = polygon.points[i] + var control_point = preload("res://addons/mat_maker_gd/widgets/polygon_edit/control_point.tscn").instance() + add_child(control_point) + control_point.initialize(p) + control_point.rect_position = transform_point(p)-control_point.OFFSET + control_point.connect("moved", self, "_on_ControlPoint_moved") + control_point.connect("removed", self, "_on_ControlPoint_removed") + + emit_signal("value_changed", polygon) + +func _on_ControlPoint_moved(index): + var control_point = get_child(index) + polygon.points[index] = reverse_transform_point(control_point.rect_position+control_point.OFFSET) + + update() + + emit_signal("value_changed", polygon) + +func _on_ControlPoint_removed(index): + if polygon.remove_point(index): + update() + update_controls() + +func _on_PolygonEditor_gui_input(event): + if !polygon: + return + + if event is InputEventMouseButton: + if event.button_index == BUTTON_LEFT and event.doubleclick: + var new_point_position = reverse_transform_point(get_local_mouse_position()) + polygon.add_point(new_point_position.x, new_point_position.y, closed) + update_controls() + +func _on_resize() -> void: + ._on_resize() + update_controls() diff --git a/game/addons/mat_maker_gd/widgets/polygon_edit/polygon_editor.tscn b/game/addons/mat_maker_gd/widgets/polygon_edit/polygon_editor.tscn new file mode 100644 index 0000000..166b925 --- /dev/null +++ b/game/addons/mat_maker_gd/widgets/polygon_edit/polygon_editor.tscn @@ -0,0 +1,14 @@ +[gd_scene load_steps=3 format=2] + +[ext_resource path="res://addons/mat_maker_gd/widgets/curve_edit/curve_view.tscn" type="PackedScene" id=1] +[ext_resource path="res://addons/mat_maker_gd/widgets/polygon_edit/polygon_editor.gd" type="Script" id=2] + +[node name="PolygonEditor" instance=ExtResource( 1 )] +margin_left = 10.0 +margin_top = 10.0 +margin_right = -10.0 +margin_bottom = -10.0 +mouse_filter = 0 +script = ExtResource( 2 ) + +[connection signal="gui_input" from="." to="." method="_on_PolygonEditor_gui_input"] diff --git a/game/addons/mat_maker_gd/widgets/polygon_edit/polygon_view.gd b/game/addons/mat_maker_gd/widgets/polygon_edit/polygon_view.gd new file mode 100644 index 0000000..cf64af9 --- /dev/null +++ b/game/addons/mat_maker_gd/widgets/polygon_edit/polygon_view.gd @@ -0,0 +1,58 @@ +tool +extends Control + +var MMPolygon = preload("res://addons/mat_maker_gd/nodes/bases/polygon_base.gd") + +#: MMPolygon +var polygon + +var draw_size : Vector2 = Vector2(1, 1) +var draw_offset : Vector2 = Vector2(0, 0) +var closed : bool = true + +func set_closed(c : bool = true): + closed = c + update() + +func _ready() -> void: +# polygon = MMPolygon.new() + connect("resized", self, "_on_resize") + _on_resize() + +func transform_point(p : Vector2) -> Vector2: + return draw_offset+p*draw_size + +func reverse_transform_point(p : Vector2) -> Vector2: + return (p-draw_offset)/draw_size + +func set_polygon(val): + polygon = val + + update() + +func _draw(): + if !polygon: + return + +# var current_theme : Theme = get_node("/root/MainWindow").theme +# var bg = current_theme.get_stylebox("panel", "Panel").bg_color +# var fg = current_theme.get_color("font_color", "Label") +# var axes_color : Color = bg.linear_interpolate(fg, 0.25) +# var curve_color : Color = bg.linear_interpolate(fg, 0.75) + + var axes_color : Color = Color(0.9, 0.9, 0.9, 1) + var curve_color : Color = Color(1, 1, 1, 1) + + draw_rect(Rect2(draw_offset, draw_size), axes_color, false) + var tp : Vector2 = transform_point(polygon.points[polygon.points.size()-1 if closed else 0]) + + for p in polygon.points: + var tnp = transform_point(p) + draw_line(tp, tnp, curve_color) + tp = tnp + +func _on_resize() -> void: + var ds : float = min(rect_size.x, rect_size.y) + draw_size = Vector2(ds, ds) + draw_offset = 0.5*(rect_size-draw_size) + update() diff --git a/game/addons/mat_maker_gd/widgets/polygon_edit/polygon_view.tscn b/game/addons/mat_maker_gd/widgets/polygon_edit/polygon_view.tscn new file mode 100644 index 0000000..0b9f2ee --- /dev/null +++ b/game/addons/mat_maker_gd/widgets/polygon_edit/polygon_view.tscn @@ -0,0 +1,12 @@ +[gd_scene load_steps=2 format=2] + +[ext_resource path="res://addons/mat_maker_gd/widgets/polygon_edit/polygon_view.gd" type="Script" id=1] + +[node name="PolygonView" type="Control"] +margin_right = 64.0 +margin_bottom = 64.0 +mouse_filter = 2 +script = ExtResource( 1 ) +__meta__ = { +"_edit_use_anchors_": false +} diff --git a/game/addons/mat_maker_gd/windows/file_dialog/fav_button.tscn b/game/addons/mat_maker_gd/windows/file_dialog/fav_button.tscn new file mode 100644 index 0000000..95d056c --- /dev/null +++ b/game/addons/mat_maker_gd/windows/file_dialog/fav_button.tscn @@ -0,0 +1,17 @@ +[gd_scene load_steps=3 format=2] + +[ext_resource path="res://addons/mat_maker_gd/icons/icons.svg" type="Texture" id=1] + +[sub_resource type="AtlasTexture" id=1] +flags = 4 +atlas = ExtResource( 1 ) +region = Rect2( 80, 80, 16, 16 ) + +[node name="FavButton" type="Button"] +margin_right = 12.0 +margin_bottom = 20.0 +icon = SubResource( 1 ) +flat = true +__meta__ = { +"_edit_use_anchors_": false +} diff --git a/game/addons/mat_maker_gd/windows/file_dialog/file_dialog.gd b/game/addons/mat_maker_gd/windows/file_dialog/file_dialog.gd new file mode 100644 index 0000000..f384b95 --- /dev/null +++ b/game/addons/mat_maker_gd/windows/file_dialog/file_dialog.gd @@ -0,0 +1,57 @@ +tool +extends FileDialog + + +var left_panel = null +var volume_option = null + + +signal return_paths(path_list) + +func _ready() -> void: + var vbox = get_child(3) + var hbox = HSplitContainer.new() + add_child(hbox) + remove_child(vbox) + left_panel = preload("res://addons/mat_maker_gd/windows/file_dialog/left_panel.tscn").instance() + hbox.add_child(left_panel) + left_panel.connect("open_directory", self, "set_current_dir") + hbox.add_child(vbox) + vbox.size_flags_horizontal = SIZE_EXPAND_FILL + var fav_button = preload("res://addons/mat_maker_gd/windows/file_dialog/fav_button.tscn").instance() + vbox.get_child(0).add_child(fav_button) + fav_button.connect("pressed", self, "add_favorite") + if OS.get_name() == "Windows": + volume_option = vbox.get_child(0).get_child(3) + if ! volume_option is OptionButton: + volume_option = null + + +func get_full_current_dir() -> String: + var prefix = "" + if volume_option != null and volume_option.visible: + prefix = volume_option.get_item_text(volume_option.selected) + return prefix+get_current_dir() + +func _on_FileDialog_file_selected(path) -> void: + left_panel.add_recent(get_full_current_dir()) + emit_signal("return_paths", [ path ]) + +func _on_FileDialog_files_selected(paths) -> void: + left_panel.add_recent(get_full_current_dir()) + emit_signal("return_paths", paths) + +func _on_FileDialog_dir_selected(dir) -> void: + emit_signal("return_paths", [ dir ]) + +func _on_FileDialog_popup_hide() -> void: + emit_signal("return_paths", [ ]) + +func select_files() -> Array: + popup_centered() + var result = yield(self, "return_paths") + queue_free() + return result + +func add_favorite(): + left_panel.add_favorite(get_full_current_dir()) diff --git a/game/addons/mat_maker_gd/windows/file_dialog/file_dialog.tscn b/game/addons/mat_maker_gd/windows/file_dialog/file_dialog.tscn new file mode 100644 index 0000000..ec783c4 --- /dev/null +++ b/game/addons/mat_maker_gd/windows/file_dialog/file_dialog.tscn @@ -0,0 +1,16 @@ +[gd_scene load_steps=2 format=2] + +[ext_resource path="res://addons/mat_maker_gd/windows/file_dialog/file_dialog.gd" type="Script" id=1] + +[node name="FileDialog" type="FileDialog"] +margin_right = 360.0 +margin_bottom = 130.0 +window_title = "Enregistrer un fichier" +resizable = true +show_hidden_files = true +script = ExtResource( 1 ) + +[connection signal="dir_selected" from="." to="." method="_on_FileDialog_dir_selected"] +[connection signal="file_selected" from="." to="." method="_on_FileDialog_file_selected"] +[connection signal="files_selected" from="." to="." method="_on_FileDialog_files_selected"] +[connection signal="popup_hide" from="." to="." method="_on_FileDialog_popup_hide"] diff --git a/game/addons/mat_maker_gd/windows/file_dialog/left_panel.gd b/game/addons/mat_maker_gd/windows/file_dialog/left_panel.gd new file mode 100644 index 0000000..5673e70 --- /dev/null +++ b/game/addons/mat_maker_gd/windows/file_dialog/left_panel.gd @@ -0,0 +1,71 @@ +tool +extends VBoxContainer + +var recents : Array = [] +var favorites : Array = [] + +signal open_directory(dirpath) + +#func _ready(): +# if get_node("/root/MainWindow") != null: +# var config_cache = get_node("/root/MainWindow").config_cache +# if config_cache.has_section_key("file_dialog", "recents"): +# var parse_result = JSON.parse(config_cache.get_value("file_dialog", "recents")) +# if parse_result != null: +# recents = parse_result.result +# if config_cache.has_section_key("file_dialog", "favorites"): +# var parse_result = JSON.parse(config_cache.get_value("file_dialog", "favorites")) +# if parse_result != null: +# favorites = parse_result.result +# update_lists() + +#func _exit_tree(): +# if get_node("/root/MainWindow") != null: +# var config_cache = get_node("/root/MainWindow").config_cache +# config_cache.set_value("file_dialog", "recents", JSON.print(recents)) +# config_cache.set_value("file_dialog", "favorites", JSON.print(favorites)) + +func add_recent(file_path : String): + if recents.find(file_path) != -1: + recents.erase(file_path) + recents.push_front(file_path) + update_lists() + +func add_favorite(file_path : String): + if favorites.find(file_path) == -1: + favorites.push_back(file_path) + update_lists() + +func my_basename(s : String) -> String: + var slash_pos : int = s.find_last("/") + if slash_pos == -1 or slash_pos+1 == s.length(): + return s + return s.right(slash_pos+1) + +func update_lists(): + $FavList.clear() + for d in favorites: + $FavList.add_item(my_basename(d)) + $FavList.set_item_tooltip($FavList.get_item_count()-1, d) + $RecentList.clear() + for d in recents: + $RecentList.add_item(my_basename(d)) + $RecentList.set_item_tooltip($RecentList.get_item_count()-1, d) + +func _on_FavList_item_activated(index): + emit_signal("open_directory", $FavList.get_item_tooltip(index)) + +func _on_RecentList_item_activated(index): + emit_signal("open_directory", $RecentList.get_item_tooltip(index)) + +func _on_FavList_gui_input(event): + if event is InputEventKey and event.pressed and event.scancode == KEY_DELETE: + if ! $FavList.get_selected_items().empty(): + favorites.remove($FavList.get_selected_items()[0]) + update_lists() + +func _on_RecentList_gui_input(event): + if event is InputEventKey and event.pressed and event.scancode == KEY_DELETE: + if ! $RecentList.get_selected_items().empty(): + recents.remove($RecentList.get_selected_items()[0]) + update_lists() diff --git a/game/addons/mat_maker_gd/windows/file_dialog/left_panel.tscn b/game/addons/mat_maker_gd/windows/file_dialog/left_panel.tscn new file mode 100644 index 0000000..a5ad9b0 --- /dev/null +++ b/game/addons/mat_maker_gd/windows/file_dialog/left_panel.tscn @@ -0,0 +1,48 @@ +[gd_scene load_steps=2 format=2] + +[ext_resource path="res://addons/mat_maker_gd/windows/file_dialog/left_panel.gd" type="Script" id=1] + +[node name="LeftPanel" type="VBoxContainer"] +margin_right = 40.0 +margin_bottom = 40.0 +size_flags_vertical = 3 +script = ExtResource( 1 ) +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="RecentLabel" type="Label" parent="."] +margin_right = 100.0 +margin_bottom = 14.0 +text = "Recent" + +[node name="RecentList" type="ItemList" parent="."] +margin_top = 18.0 +margin_right = 100.0 +margin_bottom = 18.0 +rect_min_size = Vector2( 100, 0 ) +size_flags_vertical = 3 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="FavLabel" type="Label" parent="."] +margin_top = 22.0 +margin_right = 100.0 +margin_bottom = 36.0 +text = "Favorite" + +[node name="FavList" type="ItemList" parent="."] +margin_top = 40.0 +margin_right = 100.0 +margin_bottom = 40.0 +rect_min_size = Vector2( 100, 0 ) +size_flags_vertical = 3 +__meta__ = { +"_edit_use_anchors_": false +} + +[connection signal="gui_input" from="RecentList" to="." method="_on_RecentList_gui_input"] +[connection signal="item_activated" from="RecentList" to="." method="_on_RecentList_item_activated"] +[connection signal="gui_input" from="FavList" to="." method="_on_FavList_gui_input"] +[connection signal="item_activated" from="FavList" to="." method="_on_FavList_item_activated"]