master
Benjamin Bädorf 3 years ago
parent 8db9e2223c
commit a103da3788
  1. 3
      .import/delete.png-127e161c99d924aecc0d0d1afbb22fd1.md5
  2. BIN
      .import/delete.png-127e161c99d924aecc0d0d1afbb22fd1.stex
  3. 3
      .import/delete.png-30ce3395dd1df100aa4dc302b12b783a.md5
  4. BIN
      .import/delete.png-30ce3395dd1df100aa4dc302b12b783a.stex
  5. 3
      .import/fsm.svg-8a2b60b38d31c26d893333ea60e8f91f.md5
  6. BIN
      .import/fsm.svg-8a2b60b38d31c26d893333ea60e8f91f.stex
  7. 3
      .import/fsm.svg-9840c7b98b4a22cc2abfd4e3a9c77d90.md5
  8. BIN
      .import/fsm.svg-9840c7b98b4a22cc2abfd4e3a9c77d90.stex
  9. 3
      .import/ico2d.png-bb90154a66d47bf2a4cc358a9ea66734.md5
  10. BIN
      .import/ico2d.png-bb90154a66d47bf2a4cc358a9ea66734.stex
  11. 3
      .import/ico2d.png-f3d6c574cd04045cf94acde59e8b7eca.md5
  12. BIN
      .import/ico2d.png-f3d6c574cd04045cf94acde59e8b7eca.stex
  13. 3
      .import/ico3d.png-6ee4b17aa704236f41572954696a7651.md5
  14. BIN
      .import/ico3d.png-6ee4b17aa704236f41572954696a7651.stex
  15. 3
      .import/ico3d.png-d8888be4778572f694fc558a62705365.md5
  16. BIN
      .import/ico3d.png-d8888be4778572f694fc558a62705365.stex
  17. 3
      .import/icoControl.png-5e499c3bfcc42068215fe938b9a577f0.md5
  18. BIN
      .import/icoControl.png-5e499c3bfcc42068215fe938b9a577f0.stex
  19. 3
      .import/icoControl.png-73fb2d0705e1ae29f6f12b989063199c.md5
  20. BIN
      .import/icoControl.png-73fb2d0705e1ae29f6f12b989063199c.stex
  21. 3
      .import/icon.png-0c04af38be00805a3af162d8f33c50de.md5
  22. BIN
      .import/icon.png-0c04af38be00805a3af162d8f33c50de.stex
  23. 3
      .import/icon.png-33a184e1799f144ba693d4beb8c47c3c.md5
  24. BIN
      .import/icon.png-33a184e1799f144ba693d4beb8c47c3c.stex
  25. 3
      .import/icon_white_32.png-083c2bd10c20bd04093ebce2abf775c9.md5
  26. BIN
      .import/icon_white_32.png-083c2bd10c20bd04093ebce2abf775c9.stex
  27. 3
      .import/icon_white_32.png-f88c41fe53d709d98246342569fb5955.md5
  28. BIN
      .import/icon_white_32.png-f88c41fe53d709d98246342569fb5955.stex
  29. 3
      .import/small_transition_9path.png-2d4bfc1fb489c4078c7104ff6d1a277c.md5
  30. BIN
      .import/small_transition_9path.png-2d4bfc1fb489c4078c7104ff6d1a277c.stex
  31. 3
      .import/small_transition_9path.png-8ebf94ad6a087b9ee45187bb64e6359a.md5
  32. BIN
      .import/small_transition_9path.png-8ebf94ad6a087b9ee45187bb64e6359a.stex
  33. 3
      .import/state_9path.png-168de68661d8b5460f9328ed8d7f92d5.md5
  34. BIN
      .import/state_9path.png-168de68661d8b5460f9328ed8d7f92d5.stex
  35. 3
      .import/state_9path.png-4dc0c84b0ad572b04752527b385e7c85.md5
  36. BIN
      .import/state_9path.png-4dc0c84b0ad572b04752527b385e7c85.stex
  37. 3
      .import/transition_9path.png-16124578859fb4236450e297cfb54d52.md5
  38. BIN
      .import/transition_9path.png-16124578859fb4236450e297cfb54d52.stex
  39. 3
      .import/transition_9path.png-e04b1545f4575a2af434dfc71f28b5da.md5
  40. BIN
      .import/transition_9path.png-e04b1545f4575a2af434dfc71f28b5da.stex
  41. 3
      .import/white.png-00d996f8bfb950d04bd7d1b22b3fb417.md5
  42. BIN
      .import/white.png-00d996f8bfb950d04bd7d1b22b3fb417.stex
  43. 3
      .import/white.png-c62dce88dad93e1aced2d54d646bb62b.md5
  44. BIN
      .import/white.png-c62dce88dad93e1aced2d54d646bb62b.stex
  45. 111
      addons/net.kivano.fsm/FSMInitScript.gd
  46. 9
      addons/net.kivano.fsm/FSMInitScript.tscn
  47. 19
      addons/net.kivano.fsm/FSMNodeInitializer.gd
  48. 21
      addons/net.kivano.fsm/LICENSE
  49. 11
      addons/net.kivano.fsm/README.md
  50. BIN
      addons/net.kivano.fsm/assets/delete.png
  51. 34
      addons/net.kivano.fsm/assets/delete.png.import
  52. 851
      addons/net.kivano.fsm/assets/fsm.svg
  53. 34
      addons/net.kivano.fsm/assets/fsm.svg.import
  54. BIN
      addons/net.kivano.fsm/assets/ico2d.png
  55. 1
      addons/net.kivano.fsm/assets/ico2d.png.flags
  56. 34
      addons/net.kivano.fsm/assets/ico2d.png.import
  57. BIN
      addons/net.kivano.fsm/assets/ico3d.png
  58. 34
      addons/net.kivano.fsm/assets/ico3d.png.import
  59. BIN
      addons/net.kivano.fsm/assets/icoControl.png
  60. 34
      addons/net.kivano.fsm/assets/icoControl.png.import
  61. BIN
      addons/net.kivano.fsm/assets/icon_white_32.png
  62. 34
      addons/net.kivano.fsm/assets/icon_white_32.png.import
  63. BIN
      addons/net.kivano.fsm/assets/small_transition_9path.png
  64. 2
      addons/net.kivano.fsm/assets/small_transition_9path.png.flags
  65. 34
      addons/net.kivano.fsm/assets/small_transition_9path.png.import
  66. BIN
      addons/net.kivano.fsm/assets/state_9path.png
  67. 2
      addons/net.kivano.fsm/assets/state_9path.png.flags
  68. 34
      addons/net.kivano.fsm/assets/state_9path.png.import
  69. BIN
      addons/net.kivano.fsm/assets/transition_9path.png
  70. 1
      addons/net.kivano.fsm/assets/transition_9path.png.flags
  71. 34
      addons/net.kivano.fsm/assets/transition_9path.png.import
  72. BIN
      addons/net.kivano.fsm/assets/white.png
  73. 34
      addons/net.kivano.fsm/assets/white.png.import
  74. 16
      addons/net.kivano.fsm/content/FSM.tscn
  75. 70
      addons/net.kivano.fsm/content/FSMDebugger/FSMDebugger.gd
  76. 107
      addons/net.kivano.fsm/content/FSMDebugger/FSMDebugger.tscn
  77. 65
      addons/net.kivano.fsm/content/FSMDebugger/FSMDebugger3D.gd
  78. 13
      addons/net.kivano.fsm/content/FSMDebugger/FSMDebugger3D.tscn
  79. 74
      addons/net.kivano.fsm/content/FSMDebugger/UIHolder2D/UIHolder2D.gd
  80. 17
      addons/net.kivano.fsm/content/FSMDebugger/UIHolder2D/UIHolder2D.tscn
  81. 183
      addons/net.kivano.fsm/content/FSMGraph/Arrow/Arrow.gd
  82. 27
      addons/net.kivano.fsm/content/FSMGraph/Arrow/Arrow.tscn
  83. 29
      addons/net.kivano.fsm/content/FSMGraph/Arrow/CloseIcon/CloseIcon.gd
  84. 168
      addons/net.kivano.fsm/content/FSMGraph/Arrow/CloseIcon/CloseIcon.tscn
  85. 363
      addons/net.kivano.fsm/content/FSMGraph/FSMGraph.gd
  86. 179
      addons/net.kivano.fsm/content/FSMGraph/FSMGraph.tscn
  87. 177
      addons/net.kivano.fsm/content/FSMGraph/FSMGraphUI/FSMGraphUI.gd
  88. 373
      addons/net.kivano.fsm/content/FSMGraph/FSMGraphUI/FSMGraphUI.tscn
  89. 118
      addons/net.kivano.fsm/content/FSMGraph/FSMGraphUI/NewElementBtn/NewElementBtn.gd
  90. 283
      addons/net.kivano.fsm/content/FSMGraph/FSMGraphUI/NewElementBtn/NewElementBtn.tscn
  91. 206
      addons/net.kivano.fsm/content/FSMGraph/GraphNode/GraphNode.gd
  92. 142
      addons/net.kivano.fsm/content/FSMGraph/GraphNode/GraphNode.tscn
  93. 8
      addons/net.kivano.fsm/content/FSMGraph/StateGraphNode/InputSocketPosition/InputSocketPosition.gd
  94. 17
      addons/net.kivano.fsm/content/FSMGraph/StateGraphNode/InputSocketPosition/InputSocketPosition.tscn
  95. 62
      addons/net.kivano.fsm/content/FSMGraph/StateGraphNode/StateGraphNode.gd
  96. 272
      addons/net.kivano.fsm/content/FSMGraph/StateGraphNode/StateGraphNode.tscn
  97. 80
      addons/net.kivano.fsm/content/FSMGraph/TransitionGraphNode/TransitionGraphNode.gd
  98. 57
      addons/net.kivano.fsm/content/FSMGraph/TransitionGraphNode/TransitionGraphNode.tscn
  99. 37
      addons/net.kivano.fsm/content/FSMState.gd
  100. 12
      addons/net.kivano.fsm/content/FSMState.tscn
  101. Some files were not shown because too many files have changed in this diff Show More

@ -0,0 +1,3 @@
source_md5="5d6ebff41192adc00584909fe0b04d2e"
dest_md5="1952cb5a90da6572936d30eb4aca03ec"

@ -0,0 +1,3 @@
source_md5="5d6ebff41192adc00584909fe0b04d2e"
dest_md5="1952cb5a90da6572936d30eb4aca03ec"

@ -0,0 +1,3 @@
source_md5="cdbb4fe4bcb38c925b38a4da61a55d20"
dest_md5="b4a9bf026e2ea34569e42c3272871662"

@ -0,0 +1,3 @@
source_md5="cdbb4fe4bcb38c925b38a4da61a55d20"
dest_md5="b4a9bf026e2ea34569e42c3272871662"

@ -0,0 +1,3 @@
source_md5="7cd25eeb1af5b2b7dbd3aea407a9214d"
dest_md5="9ed4338b9b65f2a38857b4f66f566a2b"

@ -0,0 +1,3 @@
source_md5="7cd25eeb1af5b2b7dbd3aea407a9214d"
dest_md5="9ed4338b9b65f2a38857b4f66f566a2b"

@ -0,0 +1,3 @@
source_md5="4caffd1246b25bb3e0fbcfa7e23eda21"
dest_md5="41aadc847215068ff3bf27ab54c811e1"

@ -0,0 +1,3 @@
source_md5="4caffd1246b25bb3e0fbcfa7e23eda21"
dest_md5="41aadc847215068ff3bf27ab54c811e1"

@ -0,0 +1,3 @@
source_md5="72edc1af5e276ff040c31dd4078d7be1"
dest_md5="5b03e94842c1cf1c8d0d0220a61fabfa"

@ -0,0 +1,3 @@
source_md5="72edc1af5e276ff040c31dd4078d7be1"
dest_md5="5b03e94842c1cf1c8d0d0220a61fabfa"

@ -0,0 +1,3 @@
source_md5="4caffd1246b25bb3e0fbcfa7e23eda21"
dest_md5="41aadc847215068ff3bf27ab54c811e1"

@ -0,0 +1,3 @@
source_md5="4caffd1246b25bb3e0fbcfa7e23eda21"
dest_md5="41aadc847215068ff3bf27ab54c811e1"

@ -0,0 +1,3 @@
source_md5="9c7f1bd268482a705d322af34df7fa0a"
dest_md5="29f17a2f8756c0917486a62b0725ba61"

@ -0,0 +1,3 @@
source_md5="9c7f1bd268482a705d322af34df7fa0a"
dest_md5="29f17a2f8756c0917486a62b0725ba61"

@ -0,0 +1,3 @@
source_md5="92e814709c39a2c05e89b565bcf6b7f5"
dest_md5="e47986e1b2c4a77e9c6668057864fc6e"

@ -0,0 +1,3 @@
source_md5="92e814709c39a2c05e89b565bcf6b7f5"
dest_md5="e47986e1b2c4a77e9c6668057864fc6e"

@ -0,0 +1,3 @@
source_md5="4d537ccac60d3466ca7802b289adca84"
dest_md5="feaba8232ffdd92c43a4bbd24a8d0174"

@ -0,0 +1,3 @@
source_md5="4d537ccac60d3466ca7802b289adca84"
dest_md5="feaba8232ffdd92c43a4bbd24a8d0174"

@ -0,0 +1,3 @@
source_md5="b0b656559164043f89e3949bd31b8679"
dest_md5="aade9d4ab66ec1bc73a09c8816151aa5"

@ -0,0 +1,3 @@
source_md5="b0b656559164043f89e3949bd31b8679"
dest_md5="aade9d4ab66ec1bc73a09c8816151aa5"

@ -0,0 +1,3 @@
source_md5="d560b82196c9f9aa2090ce2623bef19b"
dest_md5="98284cd45f6b6433d4ce1361583a2386"

@ -0,0 +1,3 @@
source_md5="d560b82196c9f9aa2090ce2623bef19b"
dest_md5="98284cd45f6b6433d4ce1361583a2386"

@ -0,0 +1,111 @@
tool
extends EditorPlugin
const FSMGraphUIscn = preload("content/FSMGraph/FSMGraphUI/FSMGraphUI.tscn");
var editorInstance;
func _enter_tree():
add_custom_type("FSMControl","Control", preload("content/fsm.gd"), preload("assets/icoControl.png"))
add_custom_type("FSM2D","Node2D", preload("content/fsm.gd"), preload("assets/ico2d.png"))
add_custom_type("FSM3D","Spatial", preload("content/fsm.gd"), preload("assets/ico3d.png"))
editorInstance = FSMGraphUIscn.instance();
print("Editor instance script: ", editorInstance.get_script());
get_editor_interface().get_editor_viewport().add_child(editorInstance);
get_editor_interface().get_editor_viewport().connect("resized", self, "on_resized");
on_resized();
editorInstance.connect("openScriptRequest", self, "onScriptOpenRequest");
editorInstance.connect("selectNodeRequest", self, "onNodeSelectRequest");
get_editor_interface().get_selection().connect("selection_changed", self, "onEditorTreeSelectionChanged");
func _exit_tree():
remove_custom_type("FSMControl")
remove_custom_type("FSM2D")
remove_custom_type("FSM3D")
if(editorInstance!=null):
editorInstance.queue_free();
queue_free()
func get_name():
return "FSM";
func has_main_screen():
return true
func apply_changes():
if(editorInstance!=null):
editorInstance.save();
var handlesRecentlyReturned = false;
#this method is useless for some reason.
#it never enter here for aything else than the simplest Node (why?)
#implemented editor selection onEditorTreeSelectionChanged signal as a workaround
func handles(object):
return false;
return (object is preload("content/fsm.gd"))
if(!object is Node): return false;
var parentName = object.get_parent().get_name();
var isInsideFsm = (parentName == "States") || (parentName == "Transitions") || (parentName.begins_with("FSM"));
if(object is preload("content/fsm.gd")):
editorInstance.manualInit(object);
return true;
elif(isInsideFsm):
return true;
return false;
func make_visible(visible):
if(visible):
editorInstance.show();
else:
editorInstance.hide();
############
### Signals
func onEditorTreeSelectionChanged():
var selectedNodes = get_editor_interface().get_selection().get_selected_nodes()
if(selectedNodes.size()!=1): return;
var selectedNode = selectedNodes[0];
if(selectedNode is preload("content/fsm.gd")):
editorInstance.manualInit(selectedNode);
make_visible(true);
elif(selectedNode.has_node("..")):
var parentName = selectedNode.get_parent().get_name();
var isInsideFsm = (parentName == "States") || (parentName == "Transitions") || (parentName.begins_with("FSM"));
if(isInsideFsm):
pass
else:
make_visible(false);
func on_resized():
var viewport_size = get_editor_interface().get_editor_viewport().get_size();
editorInstance.set_size(viewport_size);
editorInstance.set_global_position(get_editor_interface().get_editor_viewport().get_global_position());
editorInstance.graph.set_size(viewport_size);
func onScriptOpenRequest(inNodeWithScript):
if(inNodeWithScript!=null) && (inNodeWithScript.get_script()!=null):
get_editor_interface().edit_resource(inNodeWithScript.get_script()); #load(inNodeWithScript.get_filename()));
var editorSelection = get_editor_interface().get_selection();
editorSelection.clear();
editorSelection.add_node(inNodeWithScript);
make_visible(false);
func onNodeSelectRequest(inNode):
if(inNode!=null):
var editorSelection = get_editor_interface().get_selection();
editorSelection.clear();
editorSelection.add_node(inNode);
##########
## Helpers
static func returnEmptyWeakRef():
var tempObj = Node.new();
var weakRef = weakref(tempObj);
tempObj.free()
return weakRef;

@ -0,0 +1,9 @@
[gd_scene load_steps=2 format=1]
[ext_resource path="res://addons/net.kivano.fsm/FSMInitScript.gd" type="Script" id=1]
[node name="EditorPlugin" type="EditorPlugin"]
script/script = ExtResource( 1 )

@ -0,0 +1,19 @@
tool
extends Node
var scene2Manage = null;
export var DEBUG_INFO = "";
func _enter_tree():
set_name("kivano.fsm_plugin_helper");
#
if(scene2Manage==null):
scene2Manage = preload("content/FSM.tscn").instance();
#
get_parent().add_child(scene2Manage);
scene2Manage.set_owner(get_tree().get_edited_scene_root());
queue_free();
func _exit_tree(): pass

@ -0,0 +1,21 @@
The MIT License (MIT)
Copyright (c) 2016
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.

@ -0,0 +1,11 @@
# Finite state machine plugin for Godot engine
Finite state machine plugin for Godot.
It allows you to setup your states easily inside your project.
Basically it consist of "Finite state machine" node which is able to hold child nodes that are representing individual states.
It's created with the ease of additional states creation in mind, you can create them automatically from FSM node inspector, you just need to write new state name and proper script file will be created automatically, and node will be added as a child to the FSM node. The file will be created in special "states" folder inside folder that's holding currently edited scene.
There are couple of options inside FSM node:
- one of the most interesting one is to automatically remove non active states from scene tree in runtime. This way you can attach various visuals to individuals states, which visuals wont be present if you decide to change state. State will be automatically readded to the scene if you decide to activate it.
- additionally you can choose where to write state transition logic, in manual mode you can manually change states from every point of your code. Or you can choose to hardcode transitions inside state scripts. In this scenario FSM after updating current state logic will ask this state if transition should happen. In this case you need to implement computeNextState() function and return next state name.
For more informations on various options and how to use this node, check readme section of FSM node script.

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="StreamTexture"
path="res://.import/delete.png-127e161c99d924aecc0d0d1afbb22fd1.stex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://addons/net.kivano.fsm/assets/delete.png"
dest_files=[ "res://.import/delete.png-127e161c99d924aecc0d0d1afbb22fd1.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
stream=false
size_limit=0
detect_3d=true
svg/scale=1.0

@ -0,0 +1,851 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="210mm"
height="297mm"
viewBox="0 0 210 297"
version="1.1"
id="svg4873"
inkscape:version="0.92.1 r15371"
sodipodi:docname="fsm.svg">
<defs
id="defs4867" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1.979899"
inkscape:cx="345.42885"
inkscape:cy="780.43907"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
showgrid="false"
inkscape:window-width="1920"
inkscape:window-height="1080"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1" />
<metadata
id="metadata4870">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<circle
style="display:inline;opacity:1;fill:#a2eaa9;fill-opacity:1;stroke-width:0.1568815;stroke-linecap:round"
id="circle5085"
cx="61.592281"
cy="96.569794"
r="0.61818409" />
<path
style="display:inline;fill:none;stroke:#a2eaa9;stroke-width:0.31571919px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 61.96189,96.574145 h 0.79455"
id="path5087"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<path
style="display:inline;fill:none;stroke:#a2eaa9;stroke-width:0.31571919px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 63.75655,95.502125 h -1.13421 v 2.05083 h 1.13206"
id="path5089"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccc" />
<rect
style="display:inline;opacity:1;fill:#a2eaa9;fill-opacity:1;stroke:none;stroke-width:0.70771134;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect5091"
width="0.79374999"
height="0.79374999"
x="63.304989"
y="97.12796" />
<rect
y="95.089722"
x="63.246639"
height="0.79374999"
width="0.79374999"
id="rect5093"
style="display:inline;opacity:1;fill:#a2eaa9;fill-opacity:1;stroke:none;stroke-width:0.7077114;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<circle
r="0.53390765"
cy="109.59659"
cx="60.944149"
id="circle5095"
style="display:inline;opacity:1;fill:#a2eaa9;fill-opacity:1;stroke-width:0.13549399;stroke-linecap:round" />
<path
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0"
id="path5097"
d="m 61.17078,109.60369 h 0.79455"
style="display:inline;fill:none;stroke:#a2eaa9;stroke-width:0.31571919px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
sodipodi:nodetypes="cccc"
inkscape:connector-curvature="0"
id="path5099"
d="m 62.34215,108.53167 h -0.51092 v 2.05083 H 62.34"
style="display:inline;fill:none;stroke:#a2eaa9;stroke-width:0.31571919px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<rect
style="display:inline;opacity:1;fill:#a2eaa9;fill-opacity:1;stroke:none;stroke-width:0.7077114;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect5101"
width="0.79374999"
height="0.79374999"
x="62.878551"
y="108.11383" />
<path
style="display:inline;opacity:1;fill:#a2eaa9;fill-opacity:1;stroke:none;stroke-width:0.7077114;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 62.26499,109.07639 v -1.12253 l 0.56126,0.56127 z"
id="path5103"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccc" />
<path
sodipodi:nodetypes="cccc"
inkscape:connector-curvature="0"
id="path5105"
d="m 62.26499,111.13082 v -1.12253 l 0.56126,0.56127 z"
style="display:inline;opacity:1;fill:#a2eaa9;fill-opacity:1;stroke:none;stroke-width:0.7077114;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<rect
y="110.16281"
x="62.878551"
height="0.79374999"
width="0.79374999"
id="rect5107"
style="display:inline;opacity:1;fill:#a2eaa9;fill-opacity:1;stroke:none;stroke-width:0.7077114;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<text
id="text5127"
y="130.14304"
x="60.739193"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.00261307px;line-height:1.25;font-family:'Kremlin Menshevik';-inkscape-font-specification:'Kremlin Menshevik';letter-spacing:0px;word-spacing:0px;display:inline;fill:#a2eaa9;fill-opacity:1;stroke:none;stroke-width:0.10006532"
xml:space="preserve"><tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'Kremlin Menshevik';-inkscape-font-specification:'Kremlin Menshevik';fill:#a2eaa9;fill-opacity:1;stroke-width:0.10006532"
y="130.14304"
x="60.739193"
id="tspan5125"
sodipodi:role="line">F</tspan></text>
<circle
style="display:inline;opacity:1;fill:none;fill-opacity:1;stroke:#93d199;stroke-width:0.3607482;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="circle5129"
cx="61.821331"
cy="128.51126"
r="2.0821366" />
<circle
r="0.61818409"
cy="96.569794"
cx="87.637253"
id="circle5143"
style="display:inline;opacity:1;fill:#9fb0eb;fill-opacity:1;stroke-width:0.1568815;stroke-linecap:round" />
<path
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0"
id="path5145"
d="m 88.00687,96.574145 h 0.79455"
style="display:inline;fill:none;stroke:#9fb0eb;stroke-width:0.31571919px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
sodipodi:nodetypes="cccc"
inkscape:connector-curvature="0"
id="path5147"
d="m 89.80153,95.502125 h -1.13421 v 2.05083 h 1.13206"
style="display:inline;fill:none;stroke:#9fb0eb;stroke-width:0.31571919px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<rect
y="97.12796"
x="89.34996"
height="0.79374999"
width="0.79374999"
id="rect5149"
style="display:inline;opacity:1;fill:#9fb0eb;fill-opacity:1;stroke:none;stroke-width:0.70771134;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<rect
style="display:inline;opacity:1;fill:#9fb0eb;fill-opacity:1;stroke:none;stroke-width:0.7077114;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect5151"
width="0.79374999"
height="0.79374999"
x="89.291611"
y="95.089722" />
<rect
y="94.844208"
x="86.965103"
height="3.3618438"
width="3.3618438"
id="rect5153"
style="display:inline;opacity:1;fill:none;fill-opacity:1;stroke:#2c2a32;stroke-width:0.03361844;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<circle
style="display:inline;opacity:1;fill:#f69999;fill-opacity:1;stroke-width:0.1568815;stroke-linecap:round"
id="circle5171"
cx="111.24571"
cy="96.569794"
r="0.61818409" />
<path
style="display:inline;fill:none;stroke:#f69999;stroke-width:0.31571919px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 111.61532,96.574145 h 0.79455"
id="path5173"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<path
style="display:inline;fill:none;stroke:#f69999;stroke-width:0.31571919px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 113.40998,95.502125 h -1.13421 v 2.05083 h 1.13206"
id="path5175"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccc" />
<rect
style="display:inline;opacity:1;fill:#f69999;fill-opacity:1;stroke:none;stroke-width:0.70771134;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect5177"
width="0.79374999"
height="0.79374999"
x="112.95842"
y="97.12796" />
<rect
y="95.089722"
x="112.90007"
height="0.79374999"
width="0.79374999"
id="rect5179"
style="display:inline;opacity:1;fill:#f69999;fill-opacity:1;stroke:none;stroke-width:0.7077114;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<rect
style="display:inline;opacity:1;fill:none;fill-opacity:1;stroke:#2c2a32;stroke-width:0.03361844;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect5181"
width="3.3618438"
height="3.3618438"
x="110.57356"
y="94.844208" />
<circle
style="display:inline;opacity:1;fill:#9fb0eb;fill-opacity:1;stroke-width:0.13549399;stroke-linecap:round"
id="circle5235"
cx="87.905846"
cy="109.59659"
r="0.53390765" />
<path
style="display:inline;fill:none;stroke:#9fb0eb;stroke-width:0.31571919px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 88.13248,109.60369 h 0.79455"
id="path5237"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<path
style="display:inline;fill:none;stroke:#9fb0eb;stroke-width:0.31571919px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 89.30385,108.53167 h -0.51092 v 2.05083 h 0.50877"
id="path5239"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccc" />
<rect
y="108.11383"
x="89.840256"
height="0.79374999"
width="0.79374999"
id="rect5241"
style="display:inline;opacity:1;fill:#9fb0eb;fill-opacity:1;stroke:none;stroke-width:0.7077114;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<path
sodipodi:nodetypes="cccc"
inkscape:connector-curvature="0"
id="path5243"
d="m 89.22669,109.07639 v -1.12253 l 0.56126,0.56127 z"
style="display:inline;opacity:1;fill:#9fb0eb;fill-opacity:1;stroke:none;stroke-width:0.7077114;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<path
style="display:inline;opacity:1;fill:#9fb0eb;fill-opacity:1;stroke:none;stroke-width:0.7077114;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 89.22669,111.13082 v -1.12253 l 0.56126,0.56127 z"
id="path5245"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccc" />
<rect
style="display:inline;opacity:1;fill:#9fb0eb;fill-opacity:1;stroke:none;stroke-width:0.7077114;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect5247"
width="0.79374999"
height="0.79374999"
x="89.840256"
y="110.16281" />
<circle
r="0.53390765"
cy="109.59659"
cx="110.53004"
id="circle5249"
style="display:inline;opacity:1;fill:#f69999;fill-opacity:1;stroke-width:0.13549399;stroke-linecap:round" />
<path
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0"
id="path5251"
d="m 110.75668,109.60369 h 0.79455"
style="display:inline;fill:none;stroke:#f69999;stroke-width:0.31571919px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
sodipodi:nodetypes="cccc"
inkscape:connector-curvature="0"
id="path5253"
d="m 111.92805,108.53167 h -0.51092 v 2.05083 h 0.50877"
style="display:inline;fill:none;stroke:#f69999;stroke-width:0.31571919px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<rect
style="display:inline;opacity:1;fill:#f69999;fill-opacity:1;stroke:none;stroke-width:0.7077114;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect5255"
width="0.79374999"
height="0.79374999"
x="112.46446"
y="108.11383" />
<path
style="display:inline;opacity:1;fill:#f69999;fill-opacity:1;stroke:none;stroke-width:0.7077114;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 111.85089,109.07639 v -1.12253 l 0.56126,0.56127 z"
id="path5257"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccc" />
<path
sodipodi:nodetypes="cccc"
inkscape:connector-curvature="0"
id="path5259"
d="m 111.85089,111.13082 v -1.12253 l 0.56126,0.56127 z"
style="display:inline;opacity:1;fill:#f69999;fill-opacity:1;stroke:none;stroke-width:0.7077114;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<rect
y="110.16281"
x="112.46446"
height="0.79374999"
width="0.79374999"
id="rect5261"
style="display:inline;opacity:1;fill:#f69999;fill-opacity:1;stroke:none;stroke-width:0.7077114;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.00261307px;line-height:1.25;font-family:'Kremlin Menshevik';-inkscape-font-specification:'Kremlin Menshevik';letter-spacing:0px;word-spacing:0px;display:inline;fill:#a2b3ef;fill-opacity:1;stroke:none;stroke-width:0.10006532"
x="87.272949"
y="130.14304"
id="text5265"><tspan
sodipodi:role="line"
id="tspan5263"
x="87.272949"
y="130.14304"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'Kremlin Menshevik';-inkscape-font-specification:'Kremlin Menshevik';fill:#a2b3ef;fill-opacity:1;stroke-width:0.10006532">F</tspan></text>
<circle
r="2.0821366"
cy="128.51126"
cx="88.355103"
id="circle5267"
style="display:inline;opacity:1;fill:none;fill-opacity:1;stroke:#a2b3ef;stroke-width:0.3607482;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<text
id="text5277"
y="130.14304"
x="111.52966"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.00261307px;line-height:1.25;font-family:'Kremlin Menshevik';-inkscape-font-specification:'Kremlin Menshevik';letter-spacing:0px;word-spacing:0px;display:inline;fill:#a2b3ef;fill-opacity:1;stroke:none;stroke-width:0.10006532"
xml:space="preserve"><tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'Kremlin Menshevik';-inkscape-font-specification:'Kremlin Menshevik';fill:#a2b3ef;fill-opacity:1;stroke-width:0.10006532"
y="130.14304"
x="111.52966"
id="tspan5275"
sodipodi:role="line">F</tspan></text>
<circle
style="display:inline;opacity:1;fill:none;fill-opacity:1;stroke:#a2b3ef;stroke-width:0.3607482;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="circle5279"
cx="112.61182"
cy="128.51126"
r="2.0821366" />
<circle
style="display:inline;opacity:1;fill:#a2eaa9;fill-opacity:1;stroke-width:0.21283768;stroke-linecap:round"
id="circle5085-2"
cx="76.819946"
cy="50.614906"
r="0.83867681" />
<path
style="display:inline;fill:none;stroke:#a2eaa9;stroke-width:0.42832932px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 77.32139,50.620798 h 1.077948"
id="path5087-8"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<path
style="display:inline;fill:none;stroke:#a2eaa9;stroke-width:0.42832932px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 79.756164,49.224289 h -1.538756 v 2.782316 h 1.535839"
id="path5089-8"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccc" />
<rect
y="48.664062"
x="79.0411"
height="1.0768632"
width="1.0768632"
id="rect5093-3"
style="display:inline;opacity:1;fill:#a2eaa9;fill-opacity:1;stroke:none;stroke-width:0.96013653;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<circle
r="0.61818409"
cy="54.58168"
cx="104.07877"
id="circle5143-0"
style="display:inline;opacity:1;fill:#9fb0eb;fill-opacity:1;stroke-width:0.1568815;stroke-linecap:round" />
<path
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0"
id="path5145-2"
d="m 104.44838,54.586023 h 0.79455"
style="display:inline;fill:none;stroke:#9fb0eb;stroke-width:0.31571919px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
sodipodi:nodetypes="cccc"
inkscape:connector-curvature="0"
id="path5147-2"
d="m 106.24304,53.514003 h -1.13421 v 2.05083 h 1.13206"
style="display:inline;fill:none;stroke:#9fb0eb;stroke-width:0.31571919px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<rect
y="55.139847"
x="105.79148"
height="0.79374999"
width="0.79374999"
id="rect5149-3"
style="display:inline;opacity:1;fill:#9fb0eb;fill-opacity:1;stroke:none;stroke-width:0.70771134;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<rect
style="display:inline;opacity:1;fill:#9fb0eb;fill-opacity:1;stroke:none;stroke-width:0.7077114;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect5151-2"
width="0.79374999"
height="0.79374999"
x="105.73312"
y="53.101608" />
<rect
y="52.856094"
x="103.40662"
height="3.3618438"
width="3.3618438"
id="rect5153-5"
style="display:inline;opacity:1;fill:none;fill-opacity:1;stroke:#2c2a32;stroke-width:0.03361844;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<circle
style="display:inline;opacity:1;fill:#f69999;fill-opacity:1;stroke-width:0.1568815;stroke-linecap:round"
id="circle5171-5"
cx="127.68723"
cy="54.58168"
r="0.61818409" />
<path
style="display:inline;fill:none;stroke:#f69999;stroke-width:0.31571919px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 128.05683,54.586023 h 0.79455"
id="path5173-8"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<path
style="display:inline;fill:none;stroke:#f69999;stroke-width:0.31571919px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 129.85149,53.514003 h -1.13421 v 2.05083 h 1.13206"
id="path5175-5"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccc" />
<rect
style="display:inline;opacity:1;fill:#f69999;fill-opacity:1;stroke:none;stroke-width:0.70771134;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect5177-4"
width="0.79374999"
height="0.79374999"
x="129.39993"
y="55.139847" />
<rect
y="53.101608"
x="129.34158"
height="0.79374999"
width="0.79374999"
id="rect5179-7"
style="display:inline;opacity:1;fill:#f69999;fill-opacity:1;stroke:none;stroke-width:0.7077114;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<rect
style="display:inline;opacity:1;fill:none;fill-opacity:1;stroke:#2c2a32;stroke-width:0.03361844;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect5181-0"
width="3.3618438"
height="3.3618438"
x="127.01508"
y="52.856094" />
<rect
style="display:inline;opacity:1;fill:#a2eaa9;fill-opacity:1;stroke:none;stroke-width:0.96013653;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect5833"
width="1.0768632"
height="1.0768632"
x="79.0411"
y="51.458721" />
<circle
style="display:inline;opacity:1;fill:#f69999;fill-opacity:1;stroke-width:0.21283768;stroke-linecap:round"
id="circle5871"
cx="76.819946"
cy="50.614906"
r="0.83867681" />
<path
style="display:inline;opacity:1;fill:none;stroke:#f69999;stroke-width:0.42832932px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 77.32139,50.620798 h 1.077948"
id="path5873"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<path
style="display:inline;opacity:1;fill:none;stroke:#f69999;stroke-width:0.42832932px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 79.756164,49.224289 h -1.538756 v 2.782316 h 1.535839"
id="path5875"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccc" />
<rect
y="48.664062"
x="79.0411"
height="1.0768632"
width="1.0768632"
id="rect5877"
style="display:inline;opacity:1;fill:#f69999;fill-opacity:1;stroke:none;stroke-width:0.96013653;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<rect
style="display:inline;opacity:1;fill:#f69999;fill-opacity:1;stroke:none;stroke-width:0.96013653;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect5891"
width="1.0768632"
height="1.0768632"
x="79.0411"
y="51.458721" />
<text
id="text5505"
y="70.652428"
x="69.763458"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.15251994px;line-height:1.25;font-family:'Kremlin Menshevik';-inkscape-font-specification:'Kremlin Menshevik';letter-spacing:0px;word-spacing:0px;display:inline;fill:#f69999;fill-opacity:1;stroke:none;stroke-width:0.05381301"
xml:space="preserve"
transform="scale(0.92022369,1.0866923)"><tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'Kremlin Menshevik';-inkscape-font-specification:'Kremlin Menshevik';fill:#f69999;fill-opacity:1;stroke-width:0.05381301"
y="70.652428"
x="69.763458"
id="tspan5503"
sodipodi:role="line">FSM</tspan></text>
<path
style="display:inline;fill:none;stroke:#f69999;stroke-width:0.17343199;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 66.242773,74.867225 v -0.48666"
id="path5507"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<path
style="display:inline;fill:none;stroke:#f69999;stroke-width:0.18560754;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 64.672864,73.678975 v 0.79567 h 3.206632 v -0.79415"
id="path5509"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccc" />
<rect
y="72.789528"
x="64.197502"
height="1.1215856"
width="1.1215856"
id="rect5511"
style="display:inline;opacity:1;fill:#f69999;fill-opacity:1;stroke:none;stroke-width:0.26448622;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<rect
style="display:inline;opacity:1;fill:#f69999;fill-opacity:1;stroke:none;stroke-width:0.26448622;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect5513"
width="1.1215856"
height="1.1215856"
x="67.246597"
y="72.787025" />
<text
id="text5385"
y="70.682259"
x="77.853859"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.15461016px;line-height:1.25;font-family:'Kremlin Menshevik';-inkscape-font-specification:'Kremlin Menshevik';letter-spacing:0px;word-spacing:0px;display:inline;fill:#a2b3ef;fill-opacity:1;stroke:none;stroke-width:0.05386527"
xml:space="preserve"
transform="scale(0.92022369,1.0866923)"><tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'Kremlin Menshevik';-inkscape-font-specification:'Kremlin Menshevik';fill:#a2b3ef;fill-opacity:1;stroke-width:0.05386527"
y="70.682259"
x="77.853859"
id="tspan5383"
sodipodi:role="line">FSM</tspan></text>
<path
style="display:inline;fill:none;stroke:#9fb0eb;stroke-width:0.17360044;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 73.689741,74.897724 v -0.48712"
id="path5387"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<path
style="display:inline;fill:none;stroke:#9fb0eb;stroke-width:0.1857878;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 72.118308,73.708324 v 0.79644 h 3.209746 v -0.79492"
id="path5389"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccc" />
<rect
y="72.819344"
x="71.642235"
height="1.1226748"
width="1.1226748"
id="rect5391"
style="display:inline;opacity:1;fill:#9fb0eb;fill-opacity:1;stroke:none;stroke-width:0.26474312;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<rect
style="display:inline;opacity:1;fill:#9fb0eb;fill-opacity:1;stroke:none;stroke-width:0.26474312;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect5393"
width="1.1226748"
height="1.1226748"
x="74.688354"
y="72.819099" />
<text
id="text4903"
y="70.683014"
x="83.669937"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:2.15167618px;line-height:1.25;font-family:'Kremlin Menshevik';-inkscape-font-specification:'Kremlin Menshevik';letter-spacing:0px;word-spacing:0px;display:inline;fill:#a2eaa9;fill-opacity:1;stroke:none;stroke-width:0.05379191"
xml:space="preserve"
transform="scale(0.92022369,1.0866923)"><tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'Kremlin Menshevik';-inkscape-font-specification:'Kremlin Menshevik';fill:#a2eaa9;fill-opacity:1;stroke-width:0.05379191"
y="70.683014"
x="83.669937"
id="tspan4901"
sodipodi:role="line">FSM</tspan></text>
<path
style="display:inline;fill:none;stroke:#a2eaa9;stroke-width:0.17336404;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 79.039047,74.90121 V 74.41474"
id="path4905"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<path
style="display:inline;fill:none;stroke:#a2eaa9;stroke-width:0.18553479;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 77.469753,73.71343 v 0.79535 h 3.205375 v -0.79384"
id="path4907"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccc" />
<rect
y="72.821808"
x="76.993828"
height="1.1211461"
width="1.1211461"
id="rect4913"
style="display:inline;opacity:1;fill:#a2eaa9;fill-opacity:1;stroke:none;stroke-width:0.2643826;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<rect
style="display:inline;opacity:1;fill:#a2eaa9;fill-opacity:1;stroke:none;stroke-width:0.2643826;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect4923"
width="1.1211461"
height="1.1211461"
x="80.041771"
y="72.820618" />
<text
id="text5720"
y="71.764114"
x="64.150223"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:1.97887981px;line-height:1.25;font-family:'Kremlin Menshevik';-inkscape-font-specification:'Kremlin Menshevik';letter-spacing:0px;word-spacing:0px;display:inline;fill:#f69999;fill-opacity:1;stroke:none;stroke-width:0.04947199"
xml:space="preserve"
transform="scale(1.001226,0.9987755)"><tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'Kremlin Menshevik';-inkscape-font-specification:'Kremlin Menshevik';fill:#f69999;fill-opacity:1;stroke-width:0.04947199"
y="71.764114"
x="64.150223"
id="tspan5718"
sodipodi:role="line">FSM</tspan></text>
<path
style="display:inline;fill:none;stroke:#f69999;stroke-width:0.20564322;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 66.315049,70.074071 V 69.431038"
id="path5722"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<path
style="display:inline;fill:none;stroke:#f69999;stroke-width:0.19749428;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 64.734156,68.684514 v 0.84662 h 3.145982 v -0.845006"
id="path5724"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccc" />
<path
sodipodi:nodetypes="cccc"
inkscape:connector-curvature="0"
id="path5726"
d="m 65.145134,68.922845 h -0.8379 l 0.418961,-0.41895 z"
style="display:inline;opacity:1;fill:#f69999;fill-opacity:1;stroke:none;stroke-width:0.52826059;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<path
style="display:inline;opacity:1;fill:#f69999;fill-opacity:1;stroke:none;stroke-width:0.52826059;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 68.294419,68.922845 h -0.8379 l 0.418961,-0.41895 z"
id="path5728"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccc" />
<rect
y="67.536674"
x="64.234383"
height="0.95099735"
width="1.0583333"
id="rect5730"
style="display:inline;opacity:1;fill:#f69999;fill-opacity:1;stroke:none;stroke-width:0.2365765;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<rect
style="display:inline;opacity:1;fill:#f69999;fill-opacity:1;stroke:none;stroke-width:0.2365765;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect5748"
width="1.0583333"
height="0.95099735"
x="67.33979"
y="67.536674" />
<text
transform="scale(1.001226,0.9987755)"
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:1.97887981px;line-height:1.25;font-family:'Kremlin Menshevik';-inkscape-font-specification:'Kremlin Menshevik';letter-spacing:0px;word-spacing:0px;display:inline;fill:#a2b3ef;fill-opacity:1;stroke:none;stroke-width:0.04947199"
x="71.090721"
y="71.362724"
id="text5670"><tspan
sodipodi:role="line"
id="tspan5668"
x="71.090721"
y="71.362724"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'Kremlin Menshevik';-inkscape-font-specification:'Kremlin Menshevik';fill:#a2b3ef;fill-opacity:1;stroke-width:0.04947199">FSM</tspan></text>
<path
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0"
id="path5672"
d="M 73.264056,69.673167 V 69.030133"
style="display:inline;fill:none;stroke:#a2b3ef;stroke-width:0.20564322;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<path
sodipodi:nodetypes="cccc"
inkscape:connector-curvature="0"
id="path5674"
d="m 71.683163,68.283609 v 0.84662 h 3.145982 v -0.845006"
style="display:inline;fill:none;stroke:#a2b3ef;stroke-width:0.19749428;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<path
style="display:inline;opacity:1;fill:#a2b3ef;fill-opacity:1;stroke:none;stroke-width:0.52826059;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 72.094141,68.52194 h -0.8379 l 0.418961,-0.41895 z"
id="path5676"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccc" />
<path
sodipodi:nodetypes="cccc"
inkscape:connector-curvature="0"
id="path5678"
d="m 75.243426,68.52194 h -0.8379 l 0.418961,-0.41895 z"
style="display:inline;opacity:1;fill:#a2b3ef;fill-opacity:1;stroke:none;stroke-width:0.52826059;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<rect
style="display:inline;opacity:1;fill:#a2b3ef;fill-opacity:1;stroke:none;stroke-width:0.2365765;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect5680"
width="1.0583333"
height="0.95099735"
x="71.183388"
y="67.135765" />
<rect
y="67.135765"
x="74.288795"
height="0.95099735"
width="1.0583333"
id="rect5714"
style="display:inline;opacity:1;fill:#a2b3ef;fill-opacity:1;stroke:none;stroke-width:0.2365765;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<text
id="text5111"
y="71.496521"
x="77.430603"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:1.97887981px;line-height:1.25;font-family:'Kremlin Menshevik';-inkscape-font-specification:'Kremlin Menshevik';letter-spacing:0px;word-spacing:0px;display:inline;fill:#a2eaa9;fill-opacity:1;stroke:none;stroke-width:0.04947199"
xml:space="preserve"
transform="scale(1.001226,0.9987755)"><tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'Kremlin Menshevik';-inkscape-font-specification:'Kremlin Menshevik';fill:#a2eaa9;fill-opacity:1;stroke-width:0.04947199"
y="71.496521"
x="77.430603"
id="tspan5109"
sodipodi:role="line">FSM</tspan></text>
<path
style="display:inline;fill:none;stroke:#a2eaa9;stroke-width:0.20564322;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="M 79.611707,69.806802 V 69.163768"
id="path5113"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<path
style="display:inline;fill:none;stroke:#a2eaa9;stroke-width:0.19749428;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 78.030815,68.417244 v 0.84662 h 3.145982 v -0.845006"
id="path5115"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccc" />
<path
sodipodi:nodetypes="cccc"
inkscape:connector-curvature="0"
id="path5117"
d="m 78.441793,68.655575 h -0.8379 l 0.418961,-0.41895 z"
style="display:inline;opacity:1;fill:#a2eaa9;fill-opacity:1;stroke:none;stroke-width:0.52826059;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<path
style="display:inline;opacity:1;fill:#a2eaa9;fill-opacity:1;stroke:none;stroke-width:0.52826059;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 81.591078,68.655575 h -0.8379 l 0.418961,-0.41895 z"
id="path5119"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccc" />
<rect
y="67.269402"
x="77.531036"
height="0.95099735"
width="1.0583333"
id="rect5121"
style="display:inline;opacity:1;fill:#a2eaa9;fill-opacity:1;stroke:none;stroke-width:0.2365765;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<rect
style="display:inline;opacity:1;fill:#a2eaa9;fill-opacity:1;stroke:none;stroke-width:0.2365765;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect5666"
width="1.0583333"
height="0.95099735"
x="80.636444"
y="67.269402" />
<circle
style="display:inline;opacity:1;fill:#f69999;fill-opacity:1;stroke-width:0.21283768;stroke-linecap:round"
id="circle5871-1"
cx="64.685677"
cy="81.52903"
r="0.83867681" />
<path
style="display:inline;opacity:1;fill:none;stroke:#f69999;stroke-width:0.42832932px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 65.187121,81.534916 H 66.26507"
id="path5873-8"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<path
style="display:inline;opacity:1;fill:none;stroke:#f69999;stroke-width:0.42832932px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 67.621896,80.138407 h -1.538757 v 2.782316 h 1.53584"
id="path5875-7"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccc" />
<rect
y="79.578186"
x="66.90683"
height="1.0768632"
width="1.0768632"
id="rect5877-9"
style="display:inline;opacity:1;fill:#f69999;fill-opacity:1;stroke:none;stroke-width:0.96013653;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<rect
style="display:inline;opacity:1;fill:#f69999;fill-opacity:1;stroke:none;stroke-width:0.96013653;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect5891-2"
width="1.0768632"
height="1.0768632"
x="66.90683"
y="82.372849" />
<circle
r="0.83867681"
cy="81.896515"
cx="70.766068"
id="circle5835"
style="display:inline;opacity:1;fill:#9fb0eb;fill-opacity:1;stroke-width:0.21283768;stroke-linecap:round" />
<path
sodipodi:nodetypes="cc"
inkscape:connector-curvature="0"
id="path5837"
d="m 71.267503,81.902411 h 1.077948"
style="display:inline;fill:none;stroke:#9fb0eb;stroke-width:0.42832932px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
sodipodi:nodetypes="cccc"
inkscape:connector-curvature="0"
id="path5839"
d="m 73.702277,80.505902 h -1.538756 v 2.782317 h 1.535839"
style="display:inline;fill:none;stroke:#9fb0eb;stroke-width:0.42832932px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<rect
style="display:inline;opacity:1;fill:#9fb0eb;fill-opacity:1;stroke:none;stroke-width:0.96013653;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect5841"
width="1.0768632"
height="1.0768632"
x="72.987213"
y="79.945679" />
<rect
y="82.740334"
x="72.987213"
height="1.0768632"
width="1.0768632"
id="rect5867"
style="display:inline;opacity:1;fill:#9fb0eb;fill-opacity:1;stroke:none;stroke-width:0.96013653;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<circle
style="display:inline;opacity:1;fill:#a2eaa9;fill-opacity:1;stroke-width:0.21283768;stroke-linecap:round"
id="circle5085-2-0"
cx="77.681656"
cy="82.030159"
r="0.83867681" />
<path
style="display:inline;fill:none;stroke:#a2eaa9;stroke-width:0.42832932px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 78.183102,82.036047 H 79.26105"
id="path5087-8-2"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<path
style="display:inline;fill:none;stroke:#a2eaa9;stroke-width:0.42832932px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 80.617876,80.639537 H 79.07912 v 2.782317 h 1.535839"
id="path5089-8-3"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccc" />
<rect
y="80.079315"
x="79.902809"
height="1.0768632"
width="1.0768632"
id="rect5093-3-7"
style="display:inline;opacity:1;fill:#a2eaa9;fill-opacity:1;stroke:none;stroke-width:0.96013653;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<rect
style="display:inline;opacity:1;fill:#a2eaa9;fill-opacity:1;stroke:none;stroke-width:0.96013653;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect5833-5"
width="1.0768632"
height="1.0768632"
x="79.902809"
y="82.873978" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 41 KiB

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="StreamTexture"
path="res://.import/fsm.svg-8a2b60b38d31c26d893333ea60e8f91f.stex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://addons/net.kivano.fsm/assets/fsm.svg"
dest_files=[ "res://.import/fsm.svg-8a2b60b38d31c26d893333ea60e8f91f.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
stream=false
size_limit=0
detect_3d=true
svg/scale=1.0

Binary file not shown.

After

Width:  |  Height:  |  Size: 500 B

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="StreamTexture"
path="res://.import/ico2d.png-f3d6c574cd04045cf94acde59e8b7eca.stex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://addons/net.kivano.fsm/assets/ico2d.png"
dest_files=[ "res://.import/ico2d.png-f3d6c574cd04045cf94acde59e8b7eca.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
stream=false
size_limit=0
detect_3d=true
svg/scale=1.0

Binary file not shown.

After

Width:  |  Height:  |  Size: 498 B

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="StreamTexture"
path="res://.import/ico3d.png-d8888be4778572f694fc558a62705365.stex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://addons/net.kivano.fsm/assets/ico3d.png"
dest_files=[ "res://.import/ico3d.png-d8888be4778572f694fc558a62705365.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
stream=false
size_limit=0
detect_3d=true
svg/scale=1.0

Binary file not shown.

After

Width:  |  Height:  |  Size: 497 B

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="StreamTexture"
path="res://.import/icoControl.png-73fb2d0705e1ae29f6f12b989063199c.stex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://addons/net.kivano.fsm/assets/icoControl.png"
dest_files=[ "res://.import/icoControl.png-73fb2d0705e1ae29f6f12b989063199c.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
stream=false
size_limit=0
detect_3d=true
svg/scale=1.0

Binary file not shown.

After

Width:  |  Height:  |  Size: 642 B

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="StreamTexture"
path="res://.import/icon_white_32.png-f88c41fe53d709d98246342569fb5955.stex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://addons/net.kivano.fsm/assets/icon_white_32.png"
dest_files=[ "res://.import/icon_white_32.png-f88c41fe53d709d98246342569fb5955.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
stream=false
size_limit=0
detect_3d=true
svg/scale=1.0

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB