drawio_dsl 0.5.5 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (201) hide show
  1. checksums.yaml +4 -4
  2. data/.builders/.templates/basic/drawio_extensions.rb +57 -0
  3. data/.builders/.templates/basic/schema_require.rb +3 -1
  4. data/.builders/blueprint/shapes.rb +3 -1
  5. data/.builders/generators/10-transform-drawio-js.rb +195 -0
  6. data/.builders/generators/20-drawio-extensions.rb +41 -0
  7. data/.builders/generators/project_plans/drawio_dsl.rb +15 -9
  8. data/.builders/generators/project_plans/k_doc.rb +39 -0
  9. data/.builders/generators/sample_diagrams/05-samples.rb +23 -0
  10. data/.builders/generators/sample_diagrams/15-grid-direction.rb +0 -8
  11. data/.builders/generators/sample_diagrams/20-styles.rb +1 -2
  12. data/.rubocop.yml +4 -1
  13. data/CHANGELOG.md +21 -0
  14. data/README.md +2 -0
  15. data/docs/extensions/analyti_cs.svg +3 -0
  16. data/docs/extensions/android_inputs.svg +3 -0
  17. data/docs/extensions/app_services.svg +3 -0
  18. data/docs/extensions/appliances.svg +3 -0
  19. data/docs/extensions/arrows.svg +3 -0
  20. data/docs/extensions/aws_17___analyti_cs.svg +3 -0
  21. data/docs/extensions/aws_17___application_services.svg +3 -0
  22. data/docs/extensions/aws_17___artificial_intelligence.svg +3 -0
  23. data/docs/extensions/aws_17___business_productivity.svg +3 -0
  24. data/docs/extensions/aws_17___compute.svg +3 -0
  25. data/docs/extensions/aws_17___contact_center.svg +3 -0
  26. data/docs/extensions/aws_17___containers.svg +3 -0
  27. data/docs/extensions/aws_17___database.svg +3 -0
  28. data/docs/extensions/aws_17___desktop_app_straning.svg +3 -0
  29. data/docs/extensions/aws_17___developer_tools.svg +3 -0
  30. data/docs/extensions/aws_17___game_development.svg +3 -0
  31. data/docs/extensions/aws_17___general.svg +3 -0
  32. data/docs/extensions/aws_17___io_t.svg +3 -0
  33. data/docs/extensions/aws_17___management.svg +3 -0
  34. data/docs/extensions/aws_17___messaging.svg +3 -0
  35. data/docs/extensions/aws_17___migration.svg +3 -0
  36. data/docs/extensions/aws_17___mobile_services.svg +3 -0
  37. data/docs/extensions/aws_17___networking_content_delivery.svg +3 -0
  38. data/docs/extensions/aws_17___on_demand_workforce.svg +3 -0
  39. data/docs/extensions/aws_17___sdks.svg +3 -0
  40. data/docs/extensions/aws_17___serurity_identity_and_compliance.svg +3 -0
  41. data/docs/extensions/aws_17___storage.svg +3 -0
  42. data/docs/extensions/aws_19___application_integration.svg +3 -0
  43. data/docs/extensions/aws_19___ar_vr.svg +3 -0
  44. data/docs/extensions/aws_19___blockchain.svg +3 -0
  45. data/docs/extensions/aws_19___business_applications.svg +3 -0
  46. data/docs/extensions/aws_19___compute.svg +3 -0
  47. data/docs/extensions/aws_19___cost_management.svg +3 -0
  48. data/docs/extensions/aws_19___customer_engagement.svg +3 -0
  49. data/docs/extensions/aws_19___database.svg +3 -0
  50. data/docs/extensions/aws_19___desktop_app_streaming.svg +3 -0
  51. data/docs/extensions/aws_19___developer_tools.svg +3 -0
  52. data/docs/extensions/aws_19___ec2_instance_types.svg +3 -0
  53. data/docs/extensions/aws_19___game_tech.svg +3 -0
  54. data/docs/extensions/aws_19___general.svg +3 -0
  55. data/docs/extensions/aws_19___groups_note_repeated_below_without_v2.svg +3 -0
  56. data/docs/extensions/aws_19___internet_of_things.svg +3 -0
  57. data/docs/extensions/aws_19___machine_learning.svg +3 -0
  58. data/docs/extensions/aws_19___management_governance.svg +3 -0
  59. data/docs/extensions/aws_19___media_services.svg +3 -0
  60. data/docs/extensions/aws_19___migration_transfer.svg +3 -0
  61. data/docs/extensions/aws_19___mobile.svg +3 -0
  62. data/docs/extensions/aws_19___networking_content_delivery.svg +3 -0
  63. data/docs/extensions/aws_19___roboti_cs.svg +3 -0
  64. data/docs/extensions/aws_19___satellite.svg +3 -0
  65. data/docs/extensions/aws_19___security_identity_compliance.svg +3 -0
  66. data/docs/extensions/aws_19___storage.svg +3 -0
  67. data/docs/extensions/aws_19_analyti_cs.svg +3 -0
  68. data/docs/extensions/aws_general.svg +3 -0
  69. data/docs/extensions/azure2019.svg +3 -0
  70. data/docs/extensions/azure_cloud.svg +3 -0
  71. data/docs/extensions/azure_enterprise.svg +3 -0
  72. data/docs/extensions/azure_vms.svg +3 -0
  73. data/docs/extensions/basic_network_shapes.svg +3 -0
  74. data/docs/extensions/beds.svg +3 -0
  75. data/docs/extensions/bpmn_2_0.svg +3 -0
  76. data/docs/extensions/cisco_basic.svg +3 -0
  77. data/docs/extensions/cisco_extended.svg +3 -0
  78. data/docs/extensions/common_elements.svg +3 -0
  79. data/docs/extensions/computers_and_monitors.svg +3 -0
  80. data/docs/extensions/containers.svg +3 -0
  81. data/docs/extensions/content_delivery.svg +3 -0
  82. data/docs/extensions/couches.svg +3 -0
  83. data/docs/extensions/cubicle_walls.svg +3 -0
  84. data/docs/extensions/data_flow.svg +3 -0
  85. data/docs/extensions/database.svg +3 -0
  86. data/docs/extensions/deployment.svg +3 -0
  87. data/docs/extensions/desks.svg +3 -0
  88. data/docs/extensions/detailed_network_diagrams.svg +3 -0
  89. data/docs/extensions/developer_tools.svg +3 -0
  90. data/docs/extensions/doors_windows.svg +3 -0
  91. data/docs/extensions/ec2.svg +3 -0
  92. data/docs/extensions/electrical.svg +3 -0
  93. data/docs/extensions/electroni_cs.svg +3 -0
  94. data/docs/extensions/enterprise_application.svg +3 -0
  95. data/docs/extensions/equipment.svg +3 -0
  96. data/docs/extensions/ext_shapes.svg +3 -0
  97. data/docs/extensions/flowchart.svg +3 -0
  98. data/docs/extensions/geometric_shapes.svg +3 -0
  99. data/docs/extensions/google_cloud_platform.svg +3 -0
  100. data/docs/extensions/heat_exchangers.svg +3 -0
  101. data/docs/extensions/i_os_6_i_pad_controls.svg +3 -0
  102. data/docs/extensions/i_os_6_i_pad_elements.svg +3 -0
  103. data/docs/extensions/i_os_6_i_pad_icons.svg +3 -0
  104. data/docs/extensions/i_os_6_i_phone_controls.svg +3 -0
  105. data/docs/extensions/i_os_6_i_phone_elements.svg +3 -0
  106. data/docs/extensions/i_os_6_i_phone_icons.svg +3 -0
  107. data/docs/extensions/i_os_devices.svg +3 -0
  108. data/docs/extensions/i_os_icons.svg +3 -0
  109. data/docs/extensions/i_os_mockups.svg +3 -0
  110. data/docs/extensions/i_os_ui_components.svg +3 -0
  111. data/docs/extensions/i_pad_elements.svg +3 -0
  112. data/docs/extensions/i_phone_elements.svg +3 -0
  113. data/docs/extensions/information.svg +3 -0
  114. data/docs/extensions/instruments.svg +3 -0
  115. data/docs/extensions/internet_of_things.svg +3 -0
  116. data/docs/extensions/kanban.svg +3 -0
  117. data/docs/extensions/kitchen.svg +3 -0
  118. data/docs/extensions/kubernetes_icons.svg +3 -0
  119. data/docs/extensions/logic_gates.svg +3 -0
  120. data/docs/extensions/materials.svg +3 -0
  121. data/docs/extensions/message_routing.svg +3 -0
  122. data/docs/extensions/message_transformation.svg +3 -0
  123. data/docs/extensions/messaging_channels.svg +3 -0
  124. data/docs/extensions/messaging_endpoints.svg +3 -0
  125. data/docs/extensions/messaging_systems.svg +3 -0
  126. data/docs/extensions/mind_map.svg +3 -0
  127. data/docs/extensions/misc.svg +3 -0
  128. data/docs/extensions/misc_floorplan.svg +3 -0
  129. data/docs/extensions/miscellaneous.svg +3 -0
  130. data/docs/extensions/mobile_services.svg +3 -0
  131. data/docs/extensions/network.svg +3 -0
  132. data/docs/extensions/networking.svg +3 -0
  133. data/docs/extensions/on_demand.svg +3 -0
  134. data/docs/extensions/piping.svg +3 -0
  135. data/docs/extensions/power_sources.svg +3 -0
  136. data/docs/extensions/processes.svg +3 -0
  137. data/docs/extensions/pumps.svg +3 -0
  138. data/docs/extensions/repeated_from_the_above.svg +3 -0
  139. data/docs/extensions/restroom.svg +3 -0
  140. data/docs/extensions/s3.svg +3 -0
  141. data/docs/extensions/sdks.svg +3 -0
  142. data/docs/extensions/security_identity.svg +3 -0
  143. data/docs/extensions/server_racks.svg +3 -0
  144. data/docs/extensions/shipments.svg +3 -0
  145. data/docs/extensions/site_map.svg +3 -0
  146. data/docs/extensions/stairs.svg +3 -0
  147. data/docs/extensions/standard.svg +3 -0
  148. data/docs/extensions/system_management.svg +3 -0
  149. data/docs/extensions/tables_chairs.svg +3 -0
  150. data/docs/extensions/technology.svg +3 -0
  151. data/docs/extensions/transistors.svg +3 -0
  152. data/docs/extensions/ui_containers.svg +3 -0
  153. data/docs/extensions/ui_input.svg +3 -0
  154. data/docs/extensions/ui_menus.svg +3 -0
  155. data/docs/extensions/ui_misc.svg +3 -0
  156. data/docs/extensions/ui_widgets.svg +3 -0
  157. data/docs/extensions/uml_class_diagram.svg +3 -0
  158. data/docs/extensions/uml_component.svg +3 -0
  159. data/docs/extensions/uml_entity_relationship.svg +3 -0
  160. data/docs/extensions/uml_sequence.svg +3 -0
  161. data/docs/extensions/uml_state_activity.svg +3 -0
  162. data/docs/extensions/uml_use_case.svg +3 -0
  163. data/docs/extensions/value_stream_mapping.svg +3 -0
  164. data/docs/extensions/valves.svg +3 -0
  165. data/docs/extensions/venn_gradient.svg +3 -0
  166. data/docs/extensions/venn_plain.svg +3 -0
  167. data/docs/extensions/vessels.svg +3 -0
  168. data/docs/extensions.md +614 -0
  169. data/docs/project_done.svg +1 -1
  170. data/docs/project_in_progress.svg +1 -1
  171. data/docs/project_todo.svg +1 -1
  172. data/docs/samples/grid-direction-horizontal.svg +1 -1
  173. data/docs/samples/grid-direction-vertical.svg +1 -1
  174. data/docs/samples/samples.svg +3 -0
  175. data/docs/samples/styles-glass.svg +1 -1
  176. data/docs/samples/styles-plain.svg +1 -1
  177. data/docs/samples/styles-rounded.svg +1 -1
  178. data/docs/samples/styles-shadow.svg +1 -1
  179. data/docs/samples/styles-sketch.svg +1 -1
  180. data/docs/samples/themes-random.svg +1 -1
  181. data/lib/drawio_dsl/dom_builder.rb +23 -8
  182. data/lib/drawio_dsl/drawio_extensions.json +14024 -0
  183. data/lib/drawio_dsl/drawio_extensions.rb +4599 -0
  184. data/lib/drawio_dsl/drawio_extensions_active.rb +32 -0
  185. data/lib/drawio_dsl/layout_engine.rb +17 -7
  186. data/lib/drawio_dsl/schema/_.rb +2 -0
  187. data/lib/drawio_dsl/schema/diagram.rb +1 -1
  188. data/lib/drawio_dsl/schema/layouts/flex_layout.rb +1 -2
  189. data/lib/drawio_dsl/schema/layouts/grid_layout.rb +1 -2
  190. data/lib/drawio_dsl/schema/layouts/layout.rb +0 -3
  191. data/lib/drawio_dsl/schema/node.rb +21 -2
  192. data/lib/drawio_dsl/schema/node_list.rb +20 -1
  193. data/lib/drawio_dsl/schema/page.rb +14 -3
  194. data/lib/drawio_dsl/schema/shapes/shape.rb +6 -4
  195. data/lib/drawio_dsl/schema/virtual/anchor.rb +26 -0
  196. data/lib/drawio_dsl/version.rb +1 -1
  197. data/lib/drawio_dsl/xml_builder.rb +4 -8
  198. data/lib/drawio_dsl.rb +2 -0
  199. data/package-lock.json +2 -2
  200. data/package.json +1 -1
  201. metadata +166 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 60804927795dfee66047328d57be2b2fbdb924622652f30551df7e89ec041ad1
4
- data.tar.gz: d65e52b32cf6addeca5a34ab932ea8514b79a6c0d5ae0de937fe61039c8099aa
3
+ metadata.gz: 0f477a7317f4d012f3e7c1987de3ccedbf87431f5a5fa689862ba6ab3f19b62d
4
+ data.tar.gz: b76493c62b5fcd11ca2d51a028e2499e221c5a2e0f06a4b09701862f8d557afb
5
5
  SHA512:
6
- metadata.gz: 7a7a8ac91696f596df2c25efa00ff308a7cd601bd7a5a40fb4de090538a96cf741d639b52e0f5e195140e10c0e107780b9c50323e1625ad4f64c3bc63f9becaa
7
- data.tar.gz: 999205f96a80dff96d0d4645c921392e8a49a65bc25e1cbcd7950bb4c772f1fe636e42309be5bbf01ff484312c346985a78715aa53ccbc795b3e871896af9f93
6
+ metadata.gz: 684c4a481532aab5570fc06fbbb1bd075fe3b7dfd1d06903dbe8e0df8f08532c112ab73e8363243a8570224302fa104ed4a28ded7343bcba2a800d2997dd7d65
7
+ data.tar.gz: 732f7ebd2f67587caaff22b51970b1a10cc258809deb16f5b060f38853d20c76620f923ad00ccf7c022e12c381ffd028499fc487fce46e0fd246b1bc2653fd35
@@ -0,0 +1,57 @@
1
+ # frozen_string_literal: true
2
+
3
+ module DrawioDsl
4
+ # :nocov:
5
+ class DrawIoExtensions
6
+
7
+ attr_reader :sections
8
+ attr_reader :current_section
9
+
10
+ def initialize
11
+ @sections = []
12
+ end
13
+
14
+ def section(name)
15
+ @current_section = {
16
+ name: name,
17
+ shapes: []
18
+ }
19
+ @sections << current_section
20
+
21
+ yield if block_given?
22
+ end
23
+
24
+ def shape(name, style, original_name)
25
+ shape = {
26
+ name: name,
27
+ style: style,
28
+ original_name: original_name
29
+ }
30
+ current_section[:shapes] << shape
31
+ shape
32
+ end
33
+
34
+ def to_h
35
+ {
36
+ sections: @sections.map(&:to_h)
37
+ }
38
+ end
39
+
40
+ # This methods was generated using Extensions.js
41
+ # This generation can be improved over time and the code to do the generation
42
+ # can be found in the .builders/generators/10-transform-drawio-js.rb.
43
+ # original source: ~/dev/tools/drawio-desktop/drawio/src/main/webapp/js/diagramly/Extensions.js
44
+ def build_extensions
45
+ # Constants
46
+ {{{constants}}}
47
+ {{#each sections}}
48
+ section :{{snake ./name}} do
49
+ {{#each ./shapes}}
50
+ shape :{{padr (snake ./name) 60}}, "{{{./style}}}", "{{./name}}"
51
+ {{/each}}
52
+ end
53
+ {{/each}}
54
+ end
55
+ end
56
+ # :nocov:
57
+ end
@@ -14,4 +14,6 @@ require_relative 'layouts/grid_layout'
14
14
  require_relative 'shapes/shape'
15
15
  {{#each shapes}}
16
16
  require_relative 'shapes/{{snake ./type}}'
17
- {{/each}}
17
+ {{/each}}
18
+
19
+ require_relative 'virtual/anchor'
@@ -1,4 +1,4 @@
1
- KManager.model :shapes, namespace: %i[domain] do
1
+ m = KManager.model :shapes, namespace: %i[domain] do
2
2
  # microapp = import(:handlebars_helpers, :microapp)
3
3
 
4
4
  table :shapes do
@@ -60,3 +60,5 @@ KManager.model :shapes, namespace: %i[domain] do
60
60
  .add_file('shapes.json', content: shapes, on_exist: :write)
61
61
  end
62
62
  end
63
+
64
+
@@ -0,0 +1,195 @@
1
+ KManager.action :transform_drawio_js do
2
+
3
+ action do
4
+ director = KDirector::Dsls::BasicDsl
5
+ .init(k_builder,
6
+ on_exist: :write, # %i[skip write compare]
7
+ on_action: :execute # %i[queue execute]
8
+ )
9
+ .blueprint do
10
+ cd(:data)
11
+
12
+ source_file = '/Users/davidcruwys/dev/tools/drawio-desktop/drawio/src/main/webapp/js/diagramly/Extensions.js'
13
+ target_file = k_builder.target_folders.get_filename(:data, 'extensions.js')
14
+
15
+ clean = CleanExtensionsJs.new(source_file, target_file)
16
+
17
+ cd(:lib)
18
+
19
+ clean.parse
20
+
21
+ add_file('drawio_extensions.json', content: clean.build_json)
22
+ add('drawio_extensions.rb', constants: clean.constants, sections: clean.sections)
23
+ end
24
+ end
25
+ end
26
+
27
+ class CleanExtensionsJs
28
+ def initialize(source_file, target_file)
29
+ @source_file = source_file
30
+ @target_file = target_file
31
+ @source = File.read(@source_file)
32
+ @constants = []
33
+ @builder = ExtensionJsBuilder.new
34
+ end
35
+
36
+ def parse
37
+ split_source
38
+ end
39
+
40
+ def build_json
41
+ @builder.build_json
42
+ end
43
+
44
+ def build_ruby
45
+ @builder.build_ruby
46
+ end
47
+
48
+ def constants
49
+ @builder.constants.join("\n")
50
+ end
51
+
52
+ def sections
53
+ @builder.sections.select { |s| s[:shapes].length > 0 }
54
+ end
55
+
56
+ private
57
+
58
+ def split_source
59
+ source_lines = @source.split("\n")
60
+ section = :unknown
61
+
62
+ source_lines.each do |line|
63
+ if line.include?('// Global import transformation')
64
+ section = :constants
65
+ next
66
+ elsif line.include?('var styleMap = {') && !line.include?('var styleMap = {};')
67
+ puts '-----------------------------------'
68
+ section = :style_map
69
+ next
70
+ elsif line.include?('};') ||
71
+ line.include?('//Instead of doing a massive code refactoring, thees ugly global variables are used')
72
+ section = :unknown
73
+ end
74
+
75
+ if section == :constants
76
+ @builder.process_constant(line)
77
+ end
78
+
79
+ if section == :style_map
80
+ @builder.process_style_map(line)
81
+ end
82
+ end
83
+ end
84
+
85
+ def process_style_map(line)
86
+ line
87
+ end
88
+ end
89
+
90
+ class ExtensionJsBuilder
91
+ attr_accessor :constants
92
+ attr_accessor :shapes
93
+ attr_accessor :sections
94
+ attr_accessor :current_section
95
+
96
+ def initialize
97
+ @constants = []
98
+ @shapes = []
99
+ @sections = []
100
+ @current_section = nil
101
+ end
102
+
103
+ def process_constant(line)
104
+ line = line.gsub(' ', '').gsub('var ', '').gsub(/;$/, '')
105
+ @constants << " #{line}"
106
+ end
107
+
108
+ def process_style_map(line)
109
+ line = clean_line(line)
110
+
111
+ return if kill_line(line)
112
+
113
+ if line.start_with?('#')
114
+ set_section(line)
115
+ return
116
+ end
117
+
118
+ return unless current_section
119
+
120
+ parts = process_line(line)
121
+
122
+ if parts.length == 2
123
+ name = parts[0]
124
+ style = parts[1]
125
+ current_section[:shapes] << { name: name, style: style }
126
+ shapes << line
127
+ else
128
+ puts 'length not 2'
129
+ puts line
130
+ end
131
+ end
132
+
133
+ def process_line(line)
134
+ line.split(':').map { |s| s.strip.gsub('"', '') }
135
+ end
136
+
137
+ def clean_line(line)
138
+ line
139
+ .strip
140
+ .gsub(' ', ' ')
141
+ .gsub(' ', ' ')
142
+ .gsub(' :', ':')
143
+ .gsub("don't", 'do not')
144
+ .gsub('//TODO', '')
145
+ .gsub(/(\/\/)([^ ])/) do |_|
146
+ match = Regexp.last_match
147
+ "// #{match[2]}"
148
+ end
149
+ .gsub("'", '"')
150
+ .gsub('not all variants covered', '')
151
+ .gsub('Timeline shape', '')
152
+ .gsub('# not all variants covered', '')
153
+ .gsub('not all versions supported', '')
154
+ .gsub('ss + "', '"#{ss}')
155
+ .gsub('s + "', '"#{s}')
156
+ .gsub('cs,', '#{cs}')
157
+ .gsub(/cs$/, '#{cs}')
158
+ .gsub('" + containerStyle', '#{containerStyle}"')
159
+ .gsub('kupIcon + "', '"#{kupIcon}')
160
+ .gsub('gcpIcon + "', '"#{gcpIcon}')
161
+ .gsub('azur19 + "', '"#{azur19}')
162
+ .gsub('ssAzure + "', '"#{ssAzure}')
163
+ .gsub('" + arcSize + "', '#{arcSize}')
164
+ .gsub('//', '#')
165
+ .gsub(' ', ' ')
166
+ .gsub(', #', '')
167
+ .strip
168
+ .gsub(/,$/, '')
169
+ .strip
170
+ end
171
+
172
+ def kill_line(line)
173
+ line.end_with?('NA') ||
174
+ line.end_with?('not working properly, needs specific code)') ||
175
+ line.start_with?('Timeline shapes are postponed, this code is a work-in-progress') ||
176
+ line.start_with?('# *******') ||
177
+ line.start_with?('# 2019 mapping') ||
178
+ line.include?('# "') ||
179
+ line.include?('# "') ||
180
+ line.empty?
181
+ end
182
+
183
+ def set_section(line)
184
+ section = line.gsub('#', '').strip
185
+ @current_section = {
186
+ name: section,
187
+ shapes: []
188
+ }
189
+ @sections << current_section
190
+ end
191
+
192
+ def build_json
193
+ JSON.pretty_generate(@sections)
194
+ end
195
+ end
@@ -0,0 +1,41 @@
1
+ KManager.action :transform_drawio_js do
2
+
3
+ action do
4
+ director = DrawioDsl::Drawio
5
+ .init(k_builder, on_exist: :write, on_action: :execute)
6
+ .diagram(theme: :style_10)
7
+
8
+ ext = DrawioDsl::DrawIoExtensions.new
9
+ ext.build_extensions
10
+ puts ext.sections.length
11
+
12
+ ext.sections.select { |s| s[:active] }.each do |section|
13
+ director.page(section[:name]) do
14
+ grid_layout(wrap_at: 5)
15
+ puts section[:name]
16
+ puts section[:shapes]
17
+ section[:shapes].select { |s| s[:active] }.each do |shape|
18
+ square(title: shape[:name], style_modifiers: shape[:style])
19
+ log.kv(:title, shape[:name])
20
+ log.kv(:style, shape[:style])
21
+ end
22
+ end
23
+ end
24
+ director
25
+ .cd(:spec)
26
+ .save('.samples/20-extensions.drawio')
27
+ .cd(:docs)
28
+
29
+ markdown = "# Extensions\n\n"
30
+
31
+ director.builder.diagram.pages.each_with_index do |page, index|
32
+ page_no = index+1
33
+ puts "Page #{page_no}, #{page.name}"
34
+ # director.export_svg("extensions/#{page.name}", page: page_no)
35
+ markdown += "## #{page.name}\n\n![](./extensions/#{page.name}.svg)\n\n"
36
+ end
37
+
38
+ director
39
+ .add('extensions.md', content: markdown)
40
+ end
41
+ end
@@ -6,22 +6,22 @@ KManager.action :todo_drawio_dsl do
6
6
  .diagram(rounded: 1, glass: 1)
7
7
  .page('In progress', theme: :style_03, margin_left: 0, margin_top: 0) do
8
8
 
9
- h5(x: 300, y: 0, w: 400, h: 80, title: 'DrawIO DSL')
10
- p(x: 350, y: 40, w: 400, h: 80, title: 'Project plan - In progress')
9
+ # h5(x: 300, y: 0, w: 400, h: 80, title: 'DrawIO DSL')
10
+ # p(x: 350, y: 40, w: 400, h: 80, title: 'Project plan - In progress')
11
11
 
12
12
  grid_layout(y:90, direction: :horizontal, grid_h: 80, grid_w: 320, wrap_at: 3, grid: 0)
13
13
 
14
- square(w: 300, h: 60, title: 'write SVG directly into other projects')
14
+ square(w: 300, h: 60, title: 'Add page background to theme, use it whenever the theme is set at a diagram/page level')
15
15
  end
16
16
  .page('To Do', theme: :style_02, margin_left: 0, margin_top: 0) do
17
17
 
18
- h5(x: 300, y: 0, w: 400, h: 80, title: 'DrawIO DSL')
19
- p(x: 350, y: 40, w: 400, h: 80, title: 'Project plan')
18
+ # h5(x: 300, y: 0, w: 400, h: 80, title: 'DrawIO DSL')
19
+ # p(x: 350, y: 40, w: 400, h: 80, title: 'Project plan')
20
20
 
21
21
  grid_layout(y:90, direction: :horizontal, grid_h: 80, grid_w: 320, wrap_at: 3, grid: 0)
22
22
 
23
- square(w: 300, h: 60, title: 'First level child nodes need to hang of node 1')
24
- square(w: 300, h: 60, title: 'Add page background to theme, use it whenever the theme is set at a diagram/page level')
23
+ square(w: 300, h: 60, title: 'write SVG directly into other projects')
24
+ square(w: 300, h: 60, title: 'add :shape and :text-only to random shape generator')
25
25
  square(w: 300, h: 60, title: 'Nodes need to support child nodes')
26
26
  square(w: 300, h: 60, title: 'Grid layout does no position itself in relation to the last element')
27
27
  square(w: 300, h: 60, title: 'Dynamic sized shapes that expand to the size of their text')
@@ -36,11 +36,17 @@ KManager.action :todo_drawio_dsl do
36
36
  end
37
37
  .page('Done', theme: :style_06, margin_left: 0, margin_top: 0) do
38
38
 
39
- h5(x: 300, y: 0, w: 400, h: 80, title: 'DrawIO DSL')
40
- p(x: 350, y: 40, w: 400, h: 80, title: 'Done')
39
+ # h5(x: 300, y: 0, w: 400, h: 80, title: 'DrawIO DSL')
40
+ # p(x: 350, y: 40, w: 400, h: 80, title: 'Done')
41
41
 
42
42
  grid_layout(y:90, direction: :horizontal, grid_h: 80, grid_w: 320, wrap_at: 3, grid: 0)
43
43
 
44
+ square(w: 300, h: 60, title: 'generate extension based graphics based on drawio extensions.js')
45
+ square(w: 300, h: 60, title: 'active? flag on page defaulting to true. set to false to exclude page from diagram.')
46
+ square(w: 300, h: 60, title: 'first level child nodes need to hang of node 1')
47
+ square(w: 300, h: 60, title: 'node has child nodes and add_node will set a nodes parent')
48
+ square(w: 300, h: 60, title: 'nodes can belong to a parent node, the top level node responds with truthy to root?')
49
+ square(w: 300, h: 60, title: 'add sample diagram for the github readme file')
44
50
  square(w: 300, h: 60, title: 'write samples into docs folder and display in readme')
45
51
  square(w: 300, h: 60, title: 'add export as .PNG, needs to take a page number as the PNG will not support multiple pages')
46
52
  square(w: 300, h: 60, title: 'add export as .SVG, needs to take a page number as the SVG will not support multiple pages')
@@ -0,0 +1,39 @@
1
+ KManager.action :todo_drawio_dsl do
2
+ action do
3
+
4
+ DrawioDsl::Drawio
5
+ .init(k_builder, on_exist: :write, on_action: :execute)
6
+ .diagram(rounded: 1, glass: 1)
7
+ .page('In progress', theme: :style_03, margin_left: 0, margin_top: 0) do
8
+
9
+ # h5(x: 300, y: 0, w: 400, h: 80, title: 'DrawIO DSL')
10
+ # p(x: 350, y: 40, w: 400, h: 80, title: 'Project plan - In progress')
11
+
12
+ grid_layout(y:90, direction: :horizontal, grid_h: 80, grid_w: 320, wrap_at: 3, grid: 0)
13
+
14
+ square(w: 300, h: 60, title: '')
15
+ end
16
+ .page('To Do', theme: :style_02, margin_left: 0, margin_top: 0) do
17
+
18
+ # h5(x: 300, y: 0, w: 400, h: 80, title: 'DrawIO DSL')
19
+ # p(x: 350, y: 40, w: 400, h: 80, title: 'Project plan')
20
+
21
+ grid_layout(y:90, direction: :horizontal, grid_h: 80, grid_w: 320, wrap_at: 3, grid: 0)
22
+
23
+ end
24
+ .page('Done', theme: :style_06, margin_left: 0, margin_top: 0) do
25
+
26
+ # h5(x: 300, y: 0, w: 400, h: 80, title: 'DrawIO DSL')
27
+ # p(x: 350, y: 40, w: 400, h: 80, title: 'Done')
28
+
29
+ grid_layout(y:90, direction: :horizontal, grid_h: 80, grid_w: 320, wrap_at: 3, grid: 0)
30
+
31
+ end
32
+ .cd(:spec)
33
+ .save('project-plans/k_doc.drawio')
34
+ # .cd(:k_doc_docs)
35
+ # .export_svg('project_in_progress', page: 1)
36
+ # .export_svg('project_todo' , page: 2)
37
+ # .export_svg('project_done' , page: 3)
38
+ end
39
+ end
@@ -0,0 +1,23 @@
1
+ def rnd(max)
2
+ Random.rand(0..max) == 0 ? 1 : 0
3
+ end
4
+ KManager.action :bootstrap do
5
+ action do
6
+ DrawioDsl::Drawio
7
+ .init(k_builder, on_exist: :write, on_action: :execute)
8
+ .diagram(theme: :style_01)
9
+ .page('Samples') do
10
+ grid_layout(wrap_at: 5)
11
+
12
+ KConfig.configuration.drawio.shapes.select { |shape| shape.type != :shape && !shape.text_only }.each do |shape|
13
+ # print random number between 0 and 1
14
+ send(shape.type, theme: KConfig.configuration.drawio.random_theme, title: shape.type.to_s, shape: shape, rounded: rnd(2), gloss: rnd(2), sketch: rnd(8))
15
+ end
16
+
17
+ end
18
+ .cd(:spec)
19
+ .save('.samples/05-samples.drawio')
20
+ .cd(:docs)
21
+ .export_svg('samples/samples', page: 1)
22
+ end
23
+ end
@@ -1,13 +1,5 @@
1
1
  KManager.action :bootstrap do
2
2
  action do
3
-
4
- # KConfig.configuration.drawio.square.w = KConfig.configuration.drawio.square.w / 4
5
- # KConfig.configuration.drawio.square.h = KConfig.configuration.drawio.square.h / 4
6
- # KConfig.configuration.drawio.circle.w = KConfig.configuration.drawio.circle.w / 4
7
- # KConfig.configuration.drawio.circle.h = KConfig.configuration.drawio.circle.h / 4
8
- # KConfig.configuration.drawio.rectangle.w = KConfig.configuration.drawio.rectangle.w / 4
9
- # KConfig.configuration.drawio.rectangle.h = KConfig.configuration.drawio.rectangle.h / 4
10
-
11
3
  DrawioDsl::Drawio
12
4
  .init(k_builder, on_exist: :write, on_action: :execute)
13
5
  .diagram(theme: :style_01)
@@ -1,8 +1,7 @@
1
1
  KManager.action :bootstrap do
2
2
  action do
3
3
 
4
- # :rounded, :shadow, :sketch, :glass
5
- director = DrawioDsl::Drawio
4
+ DrawioDsl::Drawio
6
5
  .init(k_builder, on_exist: :write, on_action: :execute)
7
6
  .diagram(theme: :style_06)
8
7
  .page('Style-Plain', margin_left: 0, margin_top: 0) do
data/.rubocop.yml CHANGED
@@ -10,7 +10,7 @@ AllCops:
10
10
  Exclude:
11
11
  - ".builders/**/*"
12
12
  - "spec/samples/**/*"
13
-
13
+ - "lib/drawio_dsl/drawio_extensions.rb"
14
14
 
15
15
  Metrics/BlockLength:
16
16
  Exclude:
@@ -52,6 +52,9 @@ Style/BlockComments:
52
52
  Include:
53
53
  - "**/spec/*"
54
54
 
55
+ Style/RegexpLiteral:
56
+ Enabled: false
57
+
55
58
  # My Preferences - Start
56
59
  Metrics/ClassLength:
57
60
  Enabled: false
data/CHANGELOG.md CHANGED
@@ -1,3 +1,24 @@
1
+ ## [0.5.7](https://github.com/klueless-io/drawio_dsl/compare/v0.5.6...v0.5.7) (2022-03-09)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * Nodes can belong to a parent node, the top level node responds with truthy to root? ([3ab5dad](https://github.com/klueless-io/drawio_dsl/commit/3ab5dad60a81880cb603be9ab9f82994d8ac2562))
7
+
8
+ ## [0.5.6](https://github.com/klueless-io/drawio_dsl/compare/v0.5.5...v0.5.6) (2022-03-08)
9
+
10
+
11
+ ### Bug Fixes
12
+
13
+ * add sample diagram for the github readme file ([3fe7dfc](https://github.com/klueless-io/drawio_dsl/commit/3fe7dfcdd2de0721539cd78d9c8bb3a5552f2489))
14
+
15
+ ## [0.5.5](https://github.com/klueless-io/drawio_dsl/compare/v0.5.4...v0.5.5) (2022-03-08)
16
+
17
+
18
+ ### Bug Fixes
19
+
20
+ * add support for PNG/SVG and add sample documents ([4393be1](https://github.com/klueless-io/drawio_dsl/commit/4393be1db0deaf2040a4f395fd6f5c86ab4778db))
21
+
1
22
  ## [0.5.4](https://github.com/klueless-io/drawio_dsl/compare/v0.5.3...v0.5.4) (2022-03-08)
2
23
 
3
24
 
data/README.md CHANGED
@@ -38,6 +38,8 @@ See [project plan](./docs/project-plan.md)
38
38
 
39
39
  See all [samples](./docs/samples/samples.md)
40
40
 
41
+ ![](docs/samples/samples.svg)
42
+
41
43
  ## Usage
42
44
 
43
45
  See all [usage examples](./USAGE.md)
@@ -0,0 +1,3 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
3
+ <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="1087px" height="623px" viewBox="-0.5 -0.5 1087 623"><defs/><g><path d="M 148.91 115.22 L 179.23 108.91 L 179.23 51.33 L 148.91 45.02 Z M 125 160 L 96.54 148.23 L 96.54 138.81 L 82.3 142.46 L 64.87 135.11 L 64.87 129.51 L 55.2 131.34 L 45 126.9 L 45 70.68 L 55.2 69.76 L 64.87 70.24 L 64.87 47.12 L 82.3 42.64 L 96.54 44.87 L 96.54 11.77 L 125 0 L 205 33.1 L 205 126.9 Z" fill="#1ba1e2" stroke="none" pointer-events="all"/><path d="M 194.8 110.69 L 179.23 108.91 L 179.23 51.33 L 194.8 49.55 Z M 96.54 148.23 L 96.54 11.77 L 125 0 L 125 160 Z M 64.87 135.11 L 64.87 47.12 L 82.3 42.64 L 82.3 142.46 Z M 45 126.9 L 45 70.68 L 55.2 69.76 L 55.2 131.34 Z" fill-opacity="0.3" fill="#000000" stroke="none" pointer-events="all"/><path d="M 148.91 45.02 L 148.91 38.23 L 194.8 49.55 L 179.23 51.33 Z" fill-opacity="0.5" fill="#000000" stroke="none" pointer-events="all"/><path d="M 148.91 115.22 L 179.23 108.91 L 194.8 110.69 L 148.91 122.01 Z" fill-opacity="0.3" fill="#ffffff" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 158px; height: 1px; padding-top: 167px; margin-left: 46px;"><div data-drawio-colors="color: #ffffff; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(255, 255, 255); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">awsamazon_elasticsearch_service</div></div></div></foreignObject><text x="125" y="179" fill="#ffffff" font-family="Helvetica" font-size="12px" text-anchor="middle">awsamazon_elasticsearch_se...</text></switch></g><path d="M 425 63.78 L 345 68.67 L 265 63.78 L 265 33.12 L 345 0 L 425 33.12 Z M 345 160 L 329.18 153.33 L 329.18 143.23 L 314.93 147.53 L 302.58 142.4 L 302.58 135.44 L 291.85 137.99 L 281.93 133.99 L 281.93 128.51 L 273.05 130.2 L 265 126.85 L 265 79.99 L 425 79.99 L 425 126.85 Z" fill="#1ba1e2" stroke="none" pointer-events="all"/><path d="M 345 52.43 L 265 63.78 L 265 33.12 L 345 0 Z M 345 160 L 329.18 153.33 L 329.18 79.99 L 345 79.99 Z M 314.93 147.53 L 302.58 142.4 L 302.58 79.99 L 314.93 79.99 Z M 291.85 137.99 L 281.93 133.99 L 281.93 79.99 L 291.85 79.99 Z M 273.05 130.2 L 265 126.85 L 265 79.99 L 273.05 79.99 Z" fill-opacity="0.3" fill="#000000" stroke="none" pointer-events="all"/><path d="M 345 68.67 L 265 63.78 L 345 52.43 L 425 63.78 Z" fill-opacity="0.5" fill="#000000" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 158px; height: 1px; padding-top: 167px; margin-left: 266px;"><div data-drawio-colors="color: #ffffff; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(255, 255, 255); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">awselastic_map_reduce_block2</div></div></div></foreignObject><text x="345" y="179" fill="#ffffff" font-family="Helvetica" font-size="12px" text-anchor="middle">awselastic_map_reduce_bloc...</text></switch></g><path d="M 595.52 120.39 L 608.49 111.71 L 608.49 111.1 L 601.38 109.69 Z M 566.08 120.54 L 582.28 120.54 L 589.7 107.21 L 548.62 98.26 L 548.62 104.58 Z M 548.62 83.71 L 596.85 94.26 L 604.57 80.1 L 597.8 67.68 L 548.62 81.96 Z M 590.86 55 L 582.28 39.42 L 567.76 39.42 L 548.53 59.41 C 548.62 59.99 548.62 60.4 548.62 60.98 L 548.62 67.41 Z M 602.03 51.72 L 608.15 50.01 L 608.15 47.68 L 594.78 38.58 Z M 631.12 88.28 L 638.84 88.28 C 642.84 88.28 645 91.29 645 94 L 645 121.8 C 645 125.3 642.2 127.66 639.01 127.66 L 615.13 127.66 C 613.84 127.66 612.24 127.25 611.03 126.26 L 596.47 136.01 L 596.47 154.44 C 596.47 156.88 594.18 160 589.83 159.96 L 566.38 159.96 C 563.1 159.96 560 157.52 560 154.25 L 560 131.97 L 541.51 115.1 C 540.91 115.32 540.26 115.4 539.61 115.4 L 494.4 115.44 C 489.83 115.44 485 112.09 485 106.98 L 485 60.71 C 485 56.29 488.79 52.29 494.74 52.29 L 538.32 52.29 L 559.66 29.82 L 559.66 26.74 L 559.66 5.94 C 559.66 1.94 563.32 0 565.95 0 L 589.53 0 C 593.71 0 596.16 2.89 596.16 5.79 L 596.16 23.73 L 610.73 33.44 C 611.59 32.94 612.76 32.3 614.53 32.3 L 637.97 32.3 C 642.33 32.3 645 35.27 645 38.05 L 645 58.96 L 645 65.74 C 645 69.09 641.38 71.41 638.49 71.41 L 631.12 71.41 Z M 622.37 88.28 L 622.37 71.41 L 622.07 71.41 L 617.54 79.75 Z" fill="#1ba1e2" stroke="none" pointer-events="all"/><path d="M 631.12 64.4 L 638.36 64.4 C 641.29 64.4 645 62.27 645 58.96 L 645 65.74 C 645 69.09 641.38 71.41 638.49 71.41 L 631.12 71.41 Z M 559.66 29.82 L 559.66 29.82 L 559.66 26.74 C 559.74 27.57 559.96 28.37 560.3 29.14 Z M 591.34 32.3 C 592.24 32.03 593.1 31.65 593.88 31.15 L 608.15 40.87 L 608.15 47.68 L 594.78 38.58 Z M 548.53 59.41 C 548.19 58.04 547.54 56.33 546.03 55.15 L 567.72 32.3 L 582.28 32.3 L 594.27 54.01 L 590.86 55 L 582.28 39.42 L 567.76 39.42 Z M 605.52 58.27 L 608.1 57.43 L 608.1 58.81 C 608.1 61.59 610.6 63.76 612.97 64.29 L 611.03 68.33 Z M 615.6 76.29 L 622.03 64.4 L 622.37 64.4 L 622.37 71.41 L 622.07 71.41 L 617.54 79.75 Z M 604.91 95.98 L 611.08 84.55 L 613.32 88.55 C 610.34 89.16 608.49 91.44 608.49 93.96 L 608.49 96.85 Z M 548.62 74.84 L 597.8 60.56 L 606.55 76.52 L 604.57 80.1 L 597.8 67.68 L 548.62 81.96 Z M 548.62 98.26 L 548.62 91.14 L 593.23 100.85 L 589.7 107.21 Z M 548.62 104.58 L 547.67 103.75 C 548.23 102.83 548.62 101.27 548.62 100.01 Z M 560 131.97 L 541.51 115.1 C 540.91 115.32 540.26 115.4 539.61 115.4 L 494.4 115.44 C 490.39 115.44 485 112.51 485 106.98 L 485 100.2 C 485 104.62 488.97 108.55 494.66 108.55 L 539.48 108.55 C 540.43 108.55 541.08 108.39 541.51 108.24 L 560 125.11 Z M 593.58 121.69 C 592.8 121.04 592.07 120.89 591.34 120.85 L 601.34 102.57 L 608.49 103.98 L 608.49 111.1 L 601.38 109.69 L 595.52 120.39 Z M 596.47 147.09 L 596.47 154.44 C 596.47 157.03 594.05 159.96 589.83 159.96 L 566.38 159.96 C 563.1 159.96 560 157.56 560 154.25 L 560 147.39 C 560 149.87 562.63 152.84 566.38 152.84 L 590.3 152.84 C 593.58 152.84 596.47 150.21 596.47 147.09 Z M 596.47 128.85 L 611.03 119.13 C 612.28 120.12 613.92 120.54 615.13 120.54 L 638.79 120.54 C 642.24 120.54 645 118.07 645 114.79 L 645 121.8 C 645 125.27 642.2 127.66 639.01 127.66 L 615.13 127.66 C 613.84 127.66 612.24 127.21 611.03 126.26 L 596.47 136.01 Z" fill-opacity="0.3" fill="#000000" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 158px; height: 1px; padding-top: 167px; margin-left: 486px;"><div data-drawio-colors="color: #ffffff; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(255, 255, 255); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">awscluster_block2</div></div></div></foreignObject><text x="565" y="179" fill="#ffffff" font-family="Helvetica" font-size="12px" text-anchor="middle">awscluster_block2</text></switch></g><path d="M 865 137.95 C 865 143.77 861.66 148.04 856.65 148.04 L 850.72 148.04 C 845.85 148.04 843.41 143.41 843.41 138.31 L 843.41 136.04 L 833.04 136.04 C 832.55 147.4 828.92 160 825.01 160 L 777.18 160 C 774.42 160 771.63 155.73 769.78 145.05 L 732.7 145.05 C 727.54 145.05 724.43 138.91 724.43 133.61 L 724.43 100.19 L 713.64 100.19 L 713.64 138.75 C 713.64 141.5 710.93 142.94 709.52 142.94 C 706.96 142.94 705 140.74 705 138.63 L 705 38.71 C 705 35.96 707.3 34.41 709.32 34.41 C 711.51 34.41 713.64 36.48 713.64 38.67 L 713.64 77.75 L 724.43 77.75 L 724.43 42.5 C 724.43 36.2 728.01 30.06 732.76 30.06 L 750.35 30.06 L 750.35 26.23 C 750.35 21.33 753.4 17.58 756.68 15.87 C 755.85 15.15 754.67 13.24 754.67 11.36 L 754.67 3.15 C 754.81 0.92 756.54 0 757.92 0 L 804.39 0 C 806.18 0 808.65 1.44 808.65 3.23 L 808.65 11.32 C 808.65 13.12 806.75 15.31 805.37 16.11 C 807.1 17.54 808.65 20.57 808.65 26.19 L 808.65 30.06 L 824.37 30.06 C 828.92 30.06 831.8 43.46 832.41 51.15 L 842.11 51.15 C 842.46 45.89 845.91 42.18 850.46 42.18 L 856.33 42.18 C 861.31 42.18 865 47.01 865 53.39 Z" fill="#1ba1e2" stroke="none" pointer-events="all"/><path d="M 791.38 14.95 L 791.38 8.97 L 804.31 8.97 C 805.72 8.97 808.65 6.06 808.65 3.99 L 808.65 11.32 C 808.65 13.16 806.75 15.31 805.37 16.11 C 804.59 15.55 803.67 14.95 801.94 14.95 Z M 771.94 14.95 L 760.17 14.95 C 758.87 14.95 757.69 15.39 756.68 15.87 C 755.82 15.15 754.67 13.28 754.67 11.36 L 754.67 3.15 L 754.67 4.07 C 754.67 5.78 756.37 8.97 757.81 8.97 L 771.94 8.97 Z M 713.64 93.02 L 724.43 93.02 L 724.43 100.19 L 713.64 100.19 Z M 713.64 131.21 L 713.64 138.75 C 713.64 141.5 710.93 142.94 709.52 142.94 C 706.93 142.94 705 140.74 705 138.63 L 705 131.01 C 705 133.92 707.65 135.48 709.29 135.48 C 710.99 135.48 713.64 134.16 713.64 131.21 Z M 865 130.77 L 865 137.95 C 865 143.77 861.63 148.04 856.65 148.04 L 850.72 148.04 C 845.85 148.04 843.41 143.45 843.41 138.31 L 843.41 136.04 L 833.04 136.04 C 832.46 148.28 828.75 160 825.01 160 L 777.18 160 C 774.07 160 771.51 154.9 769.78 145.05 L 732.7 145.05 C 727.57 145.05 724.43 138.91 724.43 133.61 L 724.43 126.23 C 724.43 133.21 728.78 137.87 732.18 137.87 L 769.78 137.87 C 771.34 147.24 774.02 152.82 777.07 152.82 L 824.83 152.82 C 829.21 152.82 832.58 139.15 833.04 128.9 L 843.41 128.9 L 843.41 130.97 C 843.41 136.4 845.88 140.86 850.81 140.86 L 856.59 140.86 C 861.46 140.86 865 136.84 865 130.77 Z" fill-opacity="0.3" fill="#000000" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 158px; height: 1px; padding-top: 167px; margin-left: 706px;"><div data-drawio-colors="color: #ffffff; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(255, 255, 255); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">awsemrengine2</div></div></div></foreignObject><text x="785" y="179" fill="#ffffff" font-family="Helvetica" font-size="12px" text-anchor="middle">awsemrengine2</text></switch></g><path d="M 1085 137.95 C 1085 143.77 1081.66 148.04 1076.65 148.04 L 1070.72 148.04 C 1065.85 148.04 1063.41 143.41 1063.41 138.31 L 1063.41 136.04 L 1053.04 136.04 C 1052.55 147.4 1048.92 160 1045.01 160 L 997.18 160 C 994.42 160 991.63 155.73 989.78 145.05 L 952.7 145.05 C 947.54 145.05 944.43 138.91 944.43 133.61 L 944.43 100.19 L 933.64 100.19 L 933.64 138.75 C 933.64 141.5 930.93 142.94 929.52 142.94 C 926.96 142.94 925 140.74 925 138.63 L 925 38.71 C 925 35.96 927.3 34.41 929.32 34.41 C 931.51 34.41 933.64 36.48 933.64 38.67 L 933.64 77.75 L 944.43 77.75 L 944.43 42.5 C 944.43 36.2 948.01 30.06 952.76 30.06 L 970.35 30.06 L 970.35 26.23 C 970.35 21.33 973.4 17.58 976.68 15.87 C 975.85 15.15 974.67 13.24 974.67 11.36 L 974.67 3.15 C 974.81 0.92 976.54 0 977.92 0 L 1024.39 0 C 1026.18 0 1028.65 1.44 1028.65 3.23 L 1028.65 11.32 C 1028.65 13.12 1026.75 15.31 1025.37 16.11 C 1027.1 17.54 1028.65 20.57 1028.65 26.19 L 1028.65 30.06 L 1044.37 30.06 C 1048.92 30.06 1051.8 43.46 1052.41 51.15 L 1062.11 51.15 C 1062.46 45.89 1065.91 42.18 1070.46 42.18 L 1076.33 42.18 C 1081.31 42.18 1085 47.01 1085 53.39 Z" fill="#1ba1e2" stroke="none" pointer-events="all"/><path d="M 1011.38 14.95 L 1011.38 8.97 L 1024.31 8.97 C 1025.72 8.97 1028.65 6.06 1028.65 3.99 L 1028.65 11.32 C 1028.65 13.16 1026.75 15.31 1025.37 16.11 C 1024.59 15.55 1023.67 14.95 1021.94 14.95 Z M 991.94 14.95 L 980.17 14.95 C 978.87 14.95 977.69 15.39 976.68 15.87 C 975.82 15.15 974.67 13.28 974.67 11.36 L 974.67 3.15 L 974.67 4.07 C 974.67 5.78 976.37 8.97 977.81 8.97 L 991.94 8.97 Z M 933.64 93.02 L 944.43 93.02 L 944.43 100.19 L 933.64 100.19 Z M 933.64 131.21 L 933.64 138.75 C 933.64 141.5 930.93 142.94 929.52 142.94 C 926.93 142.94 925 140.74 925 138.63 L 925 131.01 C 925 133.92 927.65 135.48 929.29 135.48 C 930.99 135.48 933.64 134.16 933.64 131.21 Z M 1085 130.77 L 1085 137.95 C 1085 143.77 1081.63 148.04 1076.65 148.04 L 1070.72 148.04 C 1065.85 148.04 1063.41 143.45 1063.41 138.31 L 1063.41 136.04 L 1053.04 136.04 C 1052.46 148.28 1048.75 160 1045.01 160 L 997.18 160 C 994.07 160 991.51 154.9 989.78 145.05 L 952.7 145.05 C 947.57 145.05 944.43 138.91 944.43 133.61 L 944.43 126.23 C 944.43 133.21 948.78 137.87 952.18 137.87 L 989.78 137.87 C 991.34 147.24 994.02 152.82 997.07 152.82 L 1044.83 152.82 C 1049.21 152.82 1052.58 139.15 1053.04 128.9 L 1063.41 128.9 L 1063.41 130.97 C 1063.41 136.4 1065.88 140.86 1070.81 140.86 L 1076.59 140.86 C 1081.46 140.86 1085 136.84 1085 130.77 Z" fill-opacity="0.3" fill="#000000" stroke="none" pointer-events="all"/><rect x="925" y="0" width="0" height="0" fill="none" stroke="none" pointer-events="all"/><path d="M 1059.55 78.94 C 1059.69 75.75 1060.5 72.64 1062.83 71.21 C 1064.5 70.25 1067.32 70.33 1068.99 71.77 C 1070.32 72.88 1071.24 74.72 1071.21 77.99 C 1071.12 80.46 1069.91 82.09 1068.62 83.13 C 1069.71 83.45 1071.29 84.33 1071.9 87.52 C 1072.53 91.46 1071.29 94.89 1069.08 96.41 C 1067 97.84 1064.07 97.96 1061.94 96.25 C 1060.64 95.21 1059.2 93.06 1059.29 88.79 L 1061.68 88.79 C 1061.71 91.86 1062.94 93.42 1063.78 93.93 C 1065.65 95.05 1067.78 94.53 1068.99 92.74 C 1069.74 91.66 1070.34 89.35 1069.48 86.88 C 1068.73 85.12 1067.38 84.41 1065.82 84.33 L 1064.5 84.37 L 1064.3 81.61 L 1065.31 81.61 C 1067.24 81.61 1068.27 80.5 1068.76 79.14 C 1069.45 77.15 1068.88 74.52 1067.12 73.64 C 1066.11 73.12 1064.15 72.84 1062.92 74.76 C 1062.08 76.15 1061.91 77.63 1061.91 78.94 Z M 1037.09 96.61 L 1037.09 70.25 L 1040.52 70.25 L 1046.59 92.74 L 1052.64 70.25 L 1056.09 70.25 L 1056.09 96.61 L 1053.73 96.61 L 1053.73 74.76 L 1047.68 96.61 L 1045.53 96.61 L 1039.48 74.8 L 1039.48 96.61 Z M 1013.85 82.21 L 1019.61 82.21 C 1020.97 82.21 1022.49 81.61 1023.1 79.94 C 1023.56 78.66 1023.61 76.71 1023.18 75.32 C 1022.66 73.68 1021.4 72.92 1019.93 73 L 1013.85 73 Z M 1011.38 96.61 L 1011.38 70.25 L 1020.62 70.25 C 1022.55 70.25 1025.54 71.45 1026.15 75.43 C 1026.75 79.86 1025.17 83.25 1023.07 83.73 C 1024.1 84.09 1025.2 84.8 1025.66 87.48 C 1025.86 88.75 1025.95 90.59 1026 92.58 C 1026.21 94.69 1026.52 95.97 1026.95 96.61 L 1024.1 96.61 C 1023.82 96.13 1023.7 94.73 1023.7 92.82 C 1023.73 91.5 1023.5 89.71 1023.27 88.03 C 1022.92 86 1021.97 84.8 1020.04 84.96 L 1013.85 84.96 L 1013.85 96.61 Z M 1001.7 94.17 C 1004.01 93.97 1004.76 91.82 1005.16 90.35 C 1005.5 88.95 1005.88 85.32 1005.16 83.13 C 1004.18 80.26 1002.62 79.9 1001.5 79.82 C 999.4 79.82 998.1 81.5 997.53 83.77 C 996.87 86.36 997.15 88.87 997.53 90.43 C 998.08 92.42 999.2 94.29 1001.7 94.17 Z M 994.97 104.06 L 994.97 77.47 L 997.33 77.47 L 997.33 80.18 C 997.7 78.98 998.74 77.55 1000.87 77.23 C 1003.32 76.87 1005.53 78.07 1006.83 80.86 C 1008.7 84.76 1008.64 91.58 1006.11 94.97 C 1003.98 97.88 999.14 98.2 997.33 94.21 L 997.33 104.06 Z M 989.15 86.72 C 988.78 87.12 988.11 87.44 987.16 87.6 C 986.18 87.71 985.12 87.87 984.46 88.07 C 983.59 88.35 982.93 88.87 982.56 89.75 C 982.18 90.71 982.12 91.9 982.47 92.82 C 982.87 93.85 983.82 94.13 984.66 94.21 C 985.98 94.25 987.08 93.74 987.8 93.02 C 988.55 92.22 989.15 91.06 989.15 89.63 Z M 992.58 96.73 C 992.09 97.08 991.14 97.4 990.33 97.04 C 989.67 96.69 989.15 95.89 989.12 94.21 C 988.37 95.61 986.7 97 984.95 97.16 C 983.36 97.32 981.46 97.08 980.43 95.29 C 979.79 94.33 979.16 91.62 980.11 88.83 C 980.89 87.12 982.21 86.36 984.08 85.92 C 985.64 85.52 987.11 85.48 988.14 84.96 C 989.06 84.53 989.21 83.53 989.12 82.53 C 988.89 80.94 988.08 80.26 987.02 79.98 C 986.44 79.86 985.58 79.78 984.54 80.1 C 983.19 80.58 982.67 81.85 982.64 83.45 L 980.25 83.45 C 980.4 81.93 980.57 80.38 981.81 78.82 C 982.44 78.15 983.51 77.27 985.69 77.15 C 989.03 77.03 991.31 78.35 991.31 82.53 L 991.31 92.54 C 991.31 93.38 991.34 93.85 991.54 94.09 C 992 94.33 992.35 94.25 992.6 93.85 Z M 957.62 96.61 L 957.62 70.25 L 961.08 70.25 L 967.12 92.74 L 973.17 70.25 L 976.62 70.25 L 976.62 96.61 L 974.26 96.61 L 974.26 74.8 L 968.22 96.61 L 966.03 96.61 L 960.01 74.48 L 960.01 96.61 Z" fill="#ffffff" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 158px; height: 1px; padding-top: 167px; margin-left: 926px;"><div data-drawio-colors="color: #ffffff; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(255, 255, 255); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">awsemrmap_rm3engine2</div></div></div></foreignObject><text x="1005" y="179" fill="#ffffff" font-family="Helvetica" font-size="12px" text-anchor="middle">awsemrmap_rm3engine2</text></switch></g><path d="M 205 357.95 C 205 363.77 201.66 368.04 196.65 368.04 L 190.72 368.04 C 185.85 368.04 183.41 363.41 183.41 358.31 L 183.41 356.04 L 173.04 356.04 C 172.55 367.4 168.92 380 165.01 380 L 117.18 380 C 114.42 380 111.63 375.73 109.78 365.05 L 72.7 365.05 C 67.54 365.05 64.43 358.91 64.43 353.61 L 64.43 320.19 L 53.64 320.19 L 53.64 358.75 C 53.64 361.5 50.93 362.94 49.52 362.94 C 46.96 362.94 45 360.74 45 358.63 L 45 258.71 C 45 255.96 47.3 254.41 49.32 254.41 C 51.51 254.41 53.64 256.48 53.64 258.67 L 53.64 297.75 L 64.43 297.75 L 64.43 262.5 C 64.43 256.2 68.01 250.06 72.76 250.06 L 90.35 250.06 L 90.35 246.23 C 90.35 241.33 93.4 237.58 96.68 235.87 C 95.85 235.15 94.67 233.24 94.67 231.36 L 94.67 223.15 C 94.81 220.92 96.54 220 97.92 220 L 144.39 220 C 146.18 220 148.65 221.44 148.65 223.23 L 148.65 231.32 C 148.65 233.12 146.75 235.31 145.37 236.11 C 147.1 237.54 148.65 240.57 148.65 246.19 L 148.65 250.06 L 164.37 250.06 C 168.92 250.06 171.8 263.46 172.41 271.15 L 182.11 271.15 C 182.46 265.89 185.91 262.18 190.46 262.18 L 196.33 262.18 C 201.31 262.18 205 267.01 205 273.39 Z" fill="#1ba1e2" stroke="none" pointer-events="all"/><path d="M 131.38 234.95 L 131.38 228.97 L 144.31 228.97 C 145.72 228.97 148.65 226.06 148.65 223.99 L 148.65 231.32 C 148.65 233.16 146.75 235.31 145.37 236.11 C 144.59 235.55 143.67 234.95 141.94 234.95 Z M 111.94 234.95 L 100.17 234.95 C 98.87 234.95 97.69 235.39 96.68 235.87 C 95.82 235.15 94.67 233.28 94.67 231.36 L 94.67 223.15 L 94.67 224.07 C 94.67 225.78 96.37 228.97 97.81 228.97 L 111.94 228.97 Z M 53.64 313.02 L 64.43 313.02 L 64.43 320.19 L 53.64 320.19 Z M 53.64 351.21 L 53.64 358.75 C 53.64 361.5 50.93 362.94 49.52 362.94 C 46.93 362.94 45 360.74 45 358.63 L 45 351.01 C 45 353.92 47.65 355.48 49.29 355.48 C 50.99 355.48 53.64 354.16 53.64 351.21 Z M 205 350.77 L 205 357.95 C 205 363.77 201.63 368.04 196.65 368.04 L 190.72 368.04 C 185.85 368.04 183.41 363.45 183.41 358.31 L 183.41 356.04 L 173.04 356.04 C 172.46 368.28 168.75 380 165.01 380 L 117.18 380 C 114.07 380 111.51 374.9 109.78 365.05 L 72.7 365.05 C 67.57 365.05 64.43 358.91 64.43 353.61 L 64.43 346.23 C 64.43 353.21 68.78 357.87 72.18 357.87 L 109.78 357.87 C 111.34 367.24 114.02 372.82 117.07 372.82 L 164.83 372.82 C 169.21 372.82 172.58 359.15 173.04 348.9 L 183.41 348.9 L 183.41 350.97 C 183.41 356.4 185.88 360.86 190.81 360.86 L 196.59 360.86 C 201.46 360.86 205 356.84 205 350.77 Z" fill-opacity="0.3" fill="#000000" stroke="none" pointer-events="all"/><rect x="45" y="220" width="0" height="0" fill="none" stroke="none" pointer-events="all"/><path d="M 179.72 304.33 L 181.45 290.57 L 190.75 290.57 L 190.98 293.56 L 183.18 293.56 L 182.11 301.02 C 182.97 299.86 184.1 299.14 185.97 299.26 C 190.72 299.62 191.7 305.16 191.61 308.51 C 191.47 312.82 189.48 316.73 185.1 316.92 C 181.04 316.89 178.89 313.54 178.86 309.39 L 181.22 309.39 C 181.45 311.46 182.31 313.89 185.16 314.17 C 187.58 314.25 189.39 312.02 189.42 308.15 C 189.51 303.77 187.24 301.89 185.13 301.93 C 183.78 301.89 182.51 302.81 181.68 304.33 Z M 77.62 316.61 L 77.62 290.25 L 81.08 290.25 L 87.12 312.74 L 93.17 290.25 L 96.62 290.25 L 96.62 316.61 L 94.26 316.61 L 94.26 294.8 L 88.22 316.61 L 86.03 316.61 L 80.01 294.48 L 80.01 316.61 Z M 112.58 316.73 C 112.09 317.08 111.14 317.4 110.33 317.04 C 109.67 316.69 109.15 315.89 109.12 314.21 C 108.37 315.61 106.7 317 104.95 317.16 C 103.36 317.32 101.46 317.08 100.43 315.29 C 99.79 314.33 99.16 311.62 100.11 308.83 C 100.89 307.12 102.21 306.36 104.08 305.92 C 105.64 305.52 107.11 305.48 108.14 304.96 C 109.06 304.53 109.21 303.53 109.12 302.53 C 108.89 300.94 108.08 300.26 107.02 299.98 C 106.44 299.86 105.58 299.78 104.54 300.1 C 103.19 300.58 102.67 301.85 102.64 303.45 L 100.25 303.45 C 100.4 301.93 100.57 300.38 101.81 298.82 C 102.44 298.15 103.51 297.27 105.69 297.15 C 109.03 297.03 111.31 298.35 111.31 302.53 L 111.31 312.54 C 111.31 313.38 111.34 313.85 111.54 314.09 C 112 314.33 112.35 314.25 112.6 313.85 Z M 109.15 306.72 C 108.78 307.12 108.11 307.44 107.16 307.6 C 106.18 307.71 105.12 307.87 104.46 308.07 C 103.59 308.35 102.93 308.87 102.56 309.75 C 102.18 310.71 102.12 311.9 102.47 312.82 C 102.87 313.85 103.82 314.13 104.66 314.21 C 105.98 314.25 107.08 313.74 107.8 313.02 C 108.55 312.22 109.15 311.06 109.15 309.63 Z M 114.97 324.06 L 114.97 297.47 L 117.33 297.47 L 117.33 300.18 C 117.7 298.98 118.74 297.55 120.87 297.23 C 123.32 296.87 125.53 298.07 126.83 300.86 C 128.7 304.76 128.64 311.58 126.11 314.97 C 123.98 317.88 119.14 318.2 117.33 314.21 L 117.33 324.06 Z M 121.7 314.17 C 124.01 313.97 124.76 311.82 125.16 310.35 C 125.5 308.95 125.88 305.32 125.16 303.13 C 124.18 300.26 122.62 299.9 121.5 299.82 C 119.4 299.82 118.1 301.5 117.53 303.77 C 116.87 306.36 117.15 308.87 117.53 310.43 C 118.08 312.42 119.2 314.29 121.7 314.17 Z M 131.38 316.61 L 131.38 290.25 L 140.62 290.25 C 142.55 290.25 145.54 291.45 146.15 295.43 C 146.75 299.86 145.17 303.25 143.07 303.73 C 144.1 304.09 145.2 304.8 145.66 307.48 C 145.86 308.75 145.95 310.59 146 312.58 C 146.21 314.69 146.52 315.97 146.95 316.61 L 144.1 316.61 C 143.82 316.13 143.7 314.73 143.7 312.82 C 143.73 311.5 143.5 309.71 143.27 308.03 C 142.92 306 141.97 304.8 140.04 304.96 L 133.85 304.96 L 133.85 316.61 Z M 133.85 302.21 L 139.61 302.21 C 140.97 302.21 142.49 301.61 143.1 299.94 C 143.56 298.66 143.61 296.71 143.18 295.32 C 142.66 293.68 141.4 292.92 139.93 293 L 133.85 293 Z M 157.09 316.61 L 157.09 290.25 L 160.52 290.25 L 166.59 312.74 L 172.64 290.25 L 176.09 290.25 L 176.09 316.61 L 173.73 316.61 L 173.73 294.76 L 167.68 316.61 L 165.53 316.61 L 159.48 294.8 L 159.48 316.61 Z" fill="#ffffff" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 158px; height: 1px; padding-top: 387px; margin-left: 46px;"><div data-drawio-colors="color: #ffffff; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(255, 255, 255); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">awsemrmap_rm5engine2</div></div></div></foreignObject><text x="125" y="399" fill="#ffffff" font-family="Helvetica" font-size="12px" text-anchor="middle">awsemrmap_rm5engine2</text></switch></g><path d="M 425 357.95 C 425 363.77 421.66 368.04 416.65 368.04 L 410.72 368.04 C 405.85 368.04 403.41 363.41 403.41 358.31 L 403.41 356.04 L 393.04 356.04 C 392.55 367.4 388.92 380 385.01 380 L 337.18 380 C 334.42 380 331.63 375.73 329.78 365.05 L 292.7 365.05 C 287.54 365.05 284.43 358.91 284.43 353.61 L 284.43 320.19 L 273.64 320.19 L 273.64 358.75 C 273.64 361.5 270.93 362.94 269.52 362.94 C 266.96 362.94 265 360.74 265 358.63 L 265 258.71 C 265 255.96 267.3 254.41 269.32 254.41 C 271.51 254.41 273.64 256.48 273.64 258.67 L 273.64 297.75 L 284.43 297.75 L 284.43 262.5 C 284.43 256.2 288.01 250.06 292.76 250.06 L 310.35 250.06 L 310.35 246.23 C 310.35 241.33 313.4 237.58 316.68 235.87 C 315.85 235.15 314.67 233.24 314.67 231.36 L 314.67 223.15 C 314.81 220.92 316.54 220 317.92 220 L 364.39 220 C 366.18 220 368.65 221.44 368.65 223.23 L 368.65 231.32 C 368.65 233.12 366.75 235.31 365.37 236.11 C 367.1 237.54 368.65 240.57 368.65 246.19 L 368.65 250.06 L 384.37 250.06 C 388.92 250.06 391.8 263.46 392.41 271.15 L 402.11 271.15 C 402.46 265.89 405.91 262.18 410.46 262.18 L 416.33 262.18 C 421.31 262.18 425 267.01 425 273.39 Z" fill="#1ba1e2" stroke="none" pointer-events="all"/><path d="M 351.38 234.95 L 351.38 228.97 L 364.31 228.97 C 365.72 228.97 368.65 226.06 368.65 223.99 L 368.65 231.32 C 368.65 233.16 366.75 235.31 365.37 236.11 C 364.59 235.55 363.67 234.95 361.94 234.95 Z M 331.94 234.95 L 320.17 234.95 C 318.87 234.95 317.69 235.39 316.68 235.87 C 315.82 235.15 314.67 233.28 314.67 231.36 L 314.67 223.15 L 314.67 224.07 C 314.67 225.78 316.37 228.97 317.81 228.97 L 331.94 228.97 Z M 273.64 313.02 L 284.43 313.02 L 284.43 320.19 L 273.64 320.19 Z M 273.64 351.21 L 273.64 358.75 C 273.64 361.5 270.93 362.94 269.52 362.94 C 266.93 362.94 265 360.74 265 358.63 L 265 351.01 C 265 353.92 267.65 355.48 269.29 355.48 C 270.99 355.48 273.64 354.16 273.64 351.21 Z M 425 350.77 L 425 357.95 C 425 363.77 421.63 368.04 416.65 368.04 L 410.72 368.04 C 405.85 368.04 403.41 363.45 403.41 358.31 L 403.41 356.04 L 393.04 356.04 C 392.46 368.28 388.75 380 385.01 380 L 337.18 380 C 334.07 380 331.51 374.9 329.78 365.05 L 292.7 365.05 C 287.57 365.05 284.43 358.91 284.43 353.61 L 284.43 346.23 C 284.43 353.21 288.78 357.87 292.18 357.87 L 329.78 357.87 C 331.34 367.24 334.02 372.82 337.07 372.82 L 384.83 372.82 C 389.21 372.82 392.58 359.15 393.04 348.9 L 403.41 348.9 L 403.41 350.97 C 403.41 356.4 405.88 360.86 410.81 360.86 L 416.59 360.86 C 421.46 360.86 425 356.84 425 350.77 Z" fill-opacity="0.3" fill="#000000" stroke="none" pointer-events="all"/><rect x="265" y="220" width="0" height="0" fill="none" stroke="none" pointer-events="all"/><path d="M 404.27 316.29 C 404.44 312.02 405.33 306.96 407.24 302.05 C 408.47 298.86 410.09 295.79 411.84 293.24 L 401.88 293.24 L 401.88 290.25 L 414.2 290.25 L 414.2 292.96 C 410.17 298.39 407.35 308.03 406.86 316.29 Z M 299.75 316.61 L 299.75 290.25 L 303.21 290.25 L 309.25 312.7 L 315.3 290.25 L 318.76 290.25 L 318.76 316.61 L 316.39 316.61 L 316.39 294.76 L 310.35 316.61 L 308.16 316.61 L 302.14 294.48 L 302.14 316.61 Z M 334.71 316.73 C 334.22 317.08 333.27 317.4 332.46 317.04 C 331.8 316.65 331.28 315.85 331.25 314.17 C 330.5 315.57 328.83 316.96 327.08 317.12 C 325.49 317.28 323.59 317.04 322.56 315.29 C 321.92 314.29 321.29 311.58 322.24 308.79 C 323.02 307.12 324.34 306.36 326.21 305.88 C 327.77 305.52 329.21 305.44 330.27 304.96 C 331.19 304.53 331.34 303.49 331.25 302.49 C 331.02 300.94 330.22 300.26 329.15 299.94 C 328.57 299.82 327.71 299.78 326.67 300.1 C 325.32 300.58 324.8 301.81 324.77 303.45 L 322.38 303.45 C 322.53 301.89 322.7 300.38 323.94 298.82 C 324.57 298.15 325.64 297.27 327.83 297.11 C 331.17 297.03 333.44 298.31 333.44 302.53 L 333.44 312.5 C 333.44 313.34 333.47 313.82 333.67 314.05 C 334.13 314.29 334.48 314.21 334.74 313.85 Z M 331.28 306.68 C 330.91 307.12 330.24 307.4 329.29 307.56 C 328.31 307.71 327.25 307.83 326.59 308.07 C 325.72 308.35 325.06 308.87 324.69 309.71 C 324.31 310.67 324.25 311.86 324.6 312.82 C 325 313.85 325.95 314.13 326.79 314.21 C 328.11 314.25 329.21 313.7 329.93 312.98 C 330.65 312.18 331.28 311.06 331.28 309.63 Z M 337.1 324.06 L 337.1 297.43 L 339.46 297.43 L 339.46 300.14 C 339.83 298.94 340.87 297.55 343 297.19 C 345.45 296.87 347.66 298.07 348.96 300.82 C 350.83 304.72 350.77 311.54 348.24 314.97 C 346.11 317.88 341.27 318.2 339.46 314.17 L 339.46 324.06 Z M 343.83 314.17 C 346.14 313.93 346.89 311.78 347.29 310.35 C 347.63 308.95 348.01 305.32 347.29 303.13 C 346.31 300.26 344.76 299.9 343.63 299.82 C 341.53 299.82 340.23 301.5 339.66 303.77 C 339 306.36 339.28 308.87 339.66 310.39 C 340.21 312.38 341.33 314.25 343.83 314.17 Z M 353.51 316.61 L 353.51 290.25 L 362.75 290.25 C 364.68 290.25 367.67 291.45 368.28 295.43 C 368.88 299.86 367.3 303.25 365.2 303.73 C 366.23 304.09 367.33 304.76 367.79 307.44 C 367.99 308.75 368.08 310.55 368.13 312.58 C 368.34 314.69 368.65 315.97 369.08 316.61 L 366.23 316.61 C 365.95 316.09 365.83 314.69 365.83 312.78 C 365.86 311.46 365.6 309.71 365.4 308.03 C 365.05 305.96 364.1 304.8 362.17 304.92 L 355.98 304.92 L 355.98 316.61 Z M 355.98 302.21 L 361.74 302.21 C 363.1 302.21 364.62 301.61 365.23 299.9 C 365.69 298.62 365.75 296.71 365.31 295.28 C 364.79 293.64 363.53 292.92 362.06 292.96 L 355.98 292.96 Z M 379.22 316.61 L 379.22 290.25 L 382.65 290.25 L 388.72 312.7 L 394.77 290.25 L 398.22 290.25 L 398.22 316.61 L 395.86 316.61 L 395.86 294.76 L 389.82 316.61 L 387.66 316.61 L 381.61 294.76 L 381.61 316.61 Z" fill="#ffffff" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 158px; height: 1px; padding-top: 387px; margin-left: 266px;"><div data-drawio-colors="color: #ffffff; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(255, 255, 255); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">awsemrmap_rm7engine2</div></div></div></foreignObject><text x="345" y="399" fill="#ffffff" font-family="Helvetica" font-size="12px" text-anchor="middle">awsemrmap_rm7engine2</text></switch></g><path d="M 645 300.01 L 485 300.01 L 485 253.1 L 564.89 220 L 581.14 226.67 L 581.14 249.28 L 595.02 245.99 L 607.34 249.99 L 607.34 266.79 L 618.33 265.34 L 618.33 262.67 L 637.07 259.77 L 645 262.44 Z M 564.89 380 L 485 346.78 L 485 332.91 L 514.34 329.38 L 485 323.34 L 485 309.32 L 564.89 306.68 L 645 309.32 L 645 323.34 L 615.55 329.38 L 645 332.91 L 645 346.78 Z" fill="#1ba1e2" stroke="none" pointer-events="all"/><path d="M 627.65 300.01 L 627.65 267.71 L 618.33 265.34 L 618.33 262.67 L 637.07 259.77 L 637.07 300.01 Z M 607.34 300.01 L 607.34 266.79 L 618.33 265.34 L 618.33 300.01 Z M 581.14 300.01 L 581.14 249.28 L 595.02 245.99 L 595.02 300.01 Z M 564.89 300.01 L 485 300.01 L 485 253.1 L 564.89 220 Z M 564.89 339.79 L 485 323.34 L 485 309.32 L 564.89 315.99 Z M 564.89 380 L 485 346.78 L 485 332.91 L 564.89 356.23 Z" fill-opacity="0.3" fill="#000000" stroke="none" pointer-events="all"/><path d="M 564.89 315.99 L 485 309.32 L 564.89 306.68 L 645 309.32 Z M 564.89 356.23 L 485 332.91 L 514.34 329.38 L 564.89 339.79 L 615.55 329.38 L 645 332.91 Z" fill-opacity="0.3" fill="#ffffff" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 158px; height: 1px; padding-top: 387px; margin-left: 486px;"><div data-drawio-colors="color: #ffffff; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(255, 255, 255); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">awskinesis2</div></div></div></foreignObject><text x="565" y="399" fill="#ffffff" font-family="Helvetica" font-size="12px" text-anchor="middle">awskinesis2</text></switch></g><path d="M 865 300.01 L 705 300.01 L 705 253.1 L 784.89 220 L 801.14 226.67 L 801.14 249.28 L 815.02 245.99 L 827.34 249.99 L 827.34 266.79 L 838.33 265.34 L 838.33 262.67 L 857.07 259.77 L 865 262.44 Z M 784.89 380 L 705 346.78 L 705 332.91 L 734.34 329.38 L 705 323.34 L 705 309.32 L 784.89 306.68 L 865 309.32 L 865 323.34 L 835.55 329.38 L 865 332.91 L 865 346.78 Z" fill="#1ba1e2" stroke="none" pointer-events="all"/><path d="M 847.65 300.01 L 847.65 267.71 L 838.33 265.34 L 838.33 262.67 L 857.07 259.77 L 857.07 300.01 Z M 827.34 300.01 L 827.34 266.79 L 838.33 265.34 L 838.33 300.01 Z M 801.14 300.01 L 801.14 249.28 L 815.02 245.99 L 815.02 300.01 Z M 784.89 300.01 L 705 300.01 L 705 253.1 L 784.89 220 Z M 784.89 339.79 L 705 323.34 L 705 309.32 L 784.89 315.99 Z M 784.89 380 L 705 346.78 L 705 332.91 L 784.89 356.23 Z" fill-opacity="0.3" fill="#000000" stroke="none" pointer-events="all"/><path d="M 784.89 315.99 L 705 309.32 L 784.89 306.68 L 865 309.32 Z M 784.89 356.23 L 705 332.91 L 734.34 329.38 L 784.89 339.79 L 835.55 329.38 L 865 332.91 Z" fill-opacity="0.3" fill="#ffffff" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 158px; height: 1px; padding-top: 387px; margin-left: 706px;"><div data-drawio-colors="color: #ffffff; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(255, 255, 255); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">awsamazon_kinesis_amazon_kinesis_analytics</div></div></div></foreignObject><text x="785" y="399" fill="#ffffff" font-family="Helvetica" font-size="12px" text-anchor="middle">awsamazon_kinesis_amazon_k...</text></switch></g><path d="M 1051.62 380 C 1039.8 380 1029.7 375.9 1023.33 366.33 C 1018.8 359.3 1017.4 351.46 1017.54 342.91 C 1017.54 337.85 1018.5 333.01 1021.04 328.07 C 1026.46 317.86 1037.14 310.05 1051.66 310.05 C 1062.49 310.05 1074.43 315.99 1080.39 326.16 C 1082.97 330.65 1085 335.52 1085 342.98 C 1085 363.43 1073.58 380 1051.62 380 Z M 1019.2 370.74 L 938.63 370.74 C 930.64 370.74 925 364.56 925 356.58 L 925 232.51 C 925 226.39 930.71 220 938.67 220 L 1059.29 220 C 1066.87 220 1071.74 225.76 1071.74 233.07 L 1071.74 309.8 C 1061.53 305.03 1048.31 301.82 1034.45 307.19 C 1021.6 312.24 1013.38 322.66 1010.14 330.33 C 1005.13 348.45 1011.8 362.76 1019.2 370.74 Z" fill="#1ba1e2" stroke="none" pointer-events="all"/><path d="M 1040.75 360.68 L 1040.75 326.51 L 1045.47 326.51 L 1045.47 343.47 L 1063.41 326.51 L 1069.49 326.51 L 1054.57 340.29 L 1070.04 360.68 L 1063.96 360.68 L 1051.25 343.47 L 1045.47 348.77 L 1045.47 360.68 Z" fill="#ffffff" stroke="none" pointer-events="all"/><path d="M 1071.74 309.8 C 1061.53 305 1048.31 301.78 1034.45 307.19 C 1021.6 312.28 1013.34 322.63 1010.14 330.33 C 1013.64 319.06 1022.37 305.95 1040.42 300.3 C 1050.19 297.44 1061.72 297.69 1071.74 302.14 Z M 1085 342.98 C 1085 363.33 1073.43 380 1051.62 380 C 1039.8 380 1029.7 375.9 1023.33 366.33 C 1018.76 359.26 1017.43 351.46 1017.54 342.91 C 1017.54 355.09 1025.39 365.44 1033.98 370.18 C 1044.66 376.26 1057.04 375.83 1066.36 371.31 C 1078 365.66 1085 354.18 1085 342.98 Z M 1019.2 370.74 L 938.63 370.74 C 930.64 370.74 925 364.49 925 356.58 L 925 350.71 C 925 356.75 930.75 363.08 938.37 363.08 L 1013.64 363.08 C 1015.41 366.12 1017.25 368.66 1019.2 370.74 Z" fill-opacity="0.3" fill="#000000" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 158px; height: 1px; padding-top: 387px; margin-left: 926px;"><div data-drawio-colors="color: #ffffff; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(255, 255, 255); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">awskinesis_enabled_app2</div></div></div></foreignObject><text x="1005" y="399" fill="#ffffff" font-family="Helvetica" font-size="12px" text-anchor="middle">awskinesis_enabled_app2</text></switch></g><path d="M 140.47 523.18 C 140.79 521.49 144.42 520.02 148.65 518.74 C 163.31 514.86 186.95 515.84 196.82 518.74 C 200.93 519.79 205 521.6 205 523.22 L 205 530.14 C 205 531.94 201.01 533.45 198.19 534.35 C 188.44 537.55 162.78 538.83 149.29 534.77 C 145.18 533.68 140.47 531.94 140.47 530.14 Z M 140.47 591.87 L 140.47 536.72 C 143.25 538.68 147.76 540.3 152.96 541.27 C 164.19 543.34 177.37 543.46 189.93 541.73 C 195.21 540.9 200.89 539.62 205 537.32 L 205 592.25 C 204.84 593.72 198.51 596.39 191.99 597.37 C 177.08 600 160.89 599.4 150.3 597.25 C 145.95 596.31 140.47 594.36 140.47 591.87 Z M 136.84 595.97 L 72.11 595.97 C 57.49 595.97 45 584.24 45 570.66 L 45 564.34 L 45 465.28 C 45 451.59 57.69 440 72.23 440 L 178.17 440 C 192.03 440 205 451.06 205 465.66 L 205 515.05 C 199.84 512.68 192.75 511.25 185.79 510.46 C 174.83 509.18 159.4 509.37 148.04 511.4 C 141.03 512.61 131.73 515.54 131.73 518.14 L 131.73 585.25 C 131.73 586.91 135.19 589.09 136.84 589.5 Z" fill="#1ba1e2" stroke="none" pointer-events="all"/><path d="M 131.73 518.14 L 131.73 511.97 C 131.73 509.64 139.18 506.89 146.27 505.53 C 162.87 502.34 182.93 503.05 196.46 506.02 C 200.09 506.85 202.74 507.75 205 508.81 L 205 515.05 C 199.88 512.72 192.79 511.25 185.79 510.46 C 174.87 509.18 159.36 509.33 148.04 511.4 C 140.99 512.61 131.77 515.54 131.73 518.14 Z M 140.47 530.14 L 140.47 523.18 C 140.63 525.32 146.99 527.2 151.18 528.18 C 163.15 531.27 184.54 530.7 195.65 527.96 C 200.69 526.75 204.84 524.91 205 523.22 L 205 530.14 C 205 531.94 201.01 533.45 198.19 534.35 C 188.28 537.51 163.71 538.87 149.29 534.77 C 145.62 533.75 140.47 532.13 140.47 530.14 Z M 140.47 591.87 L 140.47 584.95 C 140.75 587.74 147.76 589.96 154.12 590.93 C 165.24 592.66 181.35 592.29 192.75 590.18 C 198.39 589.24 204.96 586.76 205 585.14 L 205 592.25 C 204.84 593.72 198.51 596.39 191.99 597.37 C 177 599.96 160.93 599.4 150.3 597.25 C 145.95 596.28 140.47 594.36 140.47 591.87 Z M 136.84 595.97 L 72.11 595.97 C 57.53 595.97 45 584.24 45 570.66 L 45 564.34 C 45 577.54 57.29 589.5 72.31 589.5 L 136.84 589.5 Z" fill-opacity="0.3" fill="#000000" stroke="none" pointer-events="all"/><rect x="45" y="440" width="0" height="0" fill="none" stroke="none" pointer-events="all"/><path d="M 113.6 500.34 L 113.6 460.84 L 151.3 460.84 L 151.3 449.56 L 184.58 480.59 L 159.72 503.8 C 157.43 503.95 154.28 504.29 151.3 504.67 L 151.3 500.34 Z M 60.11 500.34 L 60.11 460.84 L 101.8 460.84 L 101.8 500.34 Z M 71.91 566.93 L 71.91 527.43 L 113.6 527.43 L 113.6 566.93 Z" fill="#ffffff" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 158px; height: 1px; padding-top: 607px; margin-left: 46px;"><div data-drawio-colors="color: #ffffff; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(255, 255, 255); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">awsamazon_kinesis_amazon_kinesis_firehose</div></div></div></foreignObject><text x="125" y="619" fill="#ffffff" font-family="Helvetica" font-size="12px" text-anchor="middle">awsamazon_kinesis_amazon_k...</text></switch></g><path d="M 293.33 600 C 276.31 600 265 587.01 265 574.44 L 265 465.83 C 265 451.95 277.47 440 292.28 440 L 398.08 440 C 412.2 440 425 451.88 425 466.1 L 425 573.33 C 425 588.28 412.69 600 396.99 600 Z" fill="#1ba1e2" stroke="none" pointer-events="all"/><path d="M 265 566.87 C 265 578.48 275.38 592.43 292.32 592.43 L 397.6 592.43 C 412.16 592.43 425 581.21 425 566.6 L 425 573.33 C 425 588.24 412.65 600 396.99 600 L 293.33 600 C 276.43 600 265 587.05 265 574.44 Z" fill-opacity="0.3" fill="#000000" stroke="none" pointer-events="all"/><rect x="265" y="440" width="0" height="0" fill="none" stroke="none" pointer-events="all"/><path d="M 321.74 501.65 L 280.09 501.65 L 280.09 461.02 L 321.74 461.02 Z M 333.49 501.65 L 333.49 461.02 L 371.2 461.02 L 371.2 449.49 L 404.44 481.47 L 371.2 513.18 L 371.2 501.65 Z M 344.96 529.2 L 382.67 529.2 L 382.67 517.52 L 415.91 549.5 L 382.67 581.21 L 382.67 569.68 L 344.96 569.68 Z M 291.84 569.68 L 291.84 529.2 L 333.49 529.2 L 333.49 569.68 Z" fill="#ffffff" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 158px; height: 1px; padding-top: 607px; margin-left: 266px;"><div data-drawio-colors="color: #ffffff; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(255, 255, 255); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">awsamazon_kinesis_amazon_kinesis_streams</div></div></div></foreignObject><text x="345" y="619" fill="#ffffff" font-family="Helvetica" font-size="12px" text-anchor="middle">awsamazon_kinesis_amazon_k...</text></switch></g><path d="M 645 496.72 L 565 503.51 L 485 496.72 L 485 473.17 L 565 440 L 645 473.2 Z M 645 535.64 L 618.44 539.33 L 604.98 538.26 L 604.98 541.23 L 565 546.77 L 524.98 541.2 L 524.98 538.26 L 511.56 539.36 L 485 535.66 L 485 512.09 L 511.56 510.27 L 524.98 510.76 L 524.98 509.33 L 565 506.65 L 604.98 509.36 L 604.98 510.79 L 618.44 510.27 L 645 512.09 Z M 565 600 L 535.9 587.93 L 535.9 580.44 L 524.98 583.4 L 506.11 575.57 L 506.11 570.65 L 498.11 572.24 L 485 566.83 L 485 543.28 L 510.12 541.13 L 524.98 543.44 L 524.98 545.57 L 534.08 544.56 L 553.8 547.58 L 553.8 551.06 L 565 549.35 L 576.2 551.06 L 576.2 547.55 L 595.92 544.56 L 604.98 545.55 L 604.98 543.44 L 619.82 541.15 L 645 543.26 L 645 566.83 L 631.86 572.24 L 623.86 570.63 L 623.86 575.57 L 604.98 583.4 L 594.1 580.46 L 594.1 587.93 Z" fill="#1ba1e2" stroke="none" pointer-events="all"/><path d="M 565 480.2 L 485 496.72 L 485 473.17 L 565 440 Z M 604.98 538.26 L 604.98 510.79 L 618.44 510.27 L 618.44 539.33 Z M 524.98 541.2 L 524.98 509.33 L 565 506.65 L 565 546.77 Z M 511.56 539.36 L 485 535.66 L 485 512.09 L 511.56 510.27 Z M 498.11 572.24 L 485 566.83 L 485 543.28 L 498.11 546.07 Z M 524.98 583.4 L 506.11 575.57 L 506.11 547.66 L 524.98 551.51 Z M 565 600 L 535.9 587.93 L 535.9 553.8 L 565 559.8 Z M 604.98 583.4 L 594.1 580.46 L 594.1 553.8 L 576.2 551.06 L 576.2 547.55 L 604.98 551.51 Z M 631.86 572.24 L 623.86 570.63 L 623.86 547.63 L 604.98 545.55 L 604.98 543.44 L 631.86 546.07 Z" fill-opacity="0.3" fill="#000000" stroke="none" pointer-events="all"/><path d="M 565 503.51 L 485 496.72 L 565 480.2 L 645 496.72 Z" fill-opacity="0.5" fill="#000000" stroke="none" pointer-events="all"/><path d="M 604.98 543.44 L 619.82 541.15 L 645 543.26 L 631.86 546.07 Z M 576.2 547.55 L 595.92 544.56 L 623.86 547.63 L 604.98 551.51 Z M 535.9 553.8 L 565 549.35 L 594.1 553.8 L 565 559.8 Z M 506.11 547.66 L 534.08 544.56 L 553.8 547.58 L 524.98 551.51 Z M 498.11 546.07 L 485 543.28 L 510.12 541.13 L 524.98 543.44 Z" fill-opacity="0.3" fill="#ffffff" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 158px; height: 1px; padding-top: 607px; margin-left: 486px;"><div data-drawio-colors="color: #ffffff; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(255, 255, 255); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">awsamazon_machine_learning</div></div></div></foreignObject><text x="565" y="619" fill="#ffffff" font-family="Helvetica" font-size="12px" text-anchor="middle">awsamazon_machine_learning</text></switch></g><path d="M 712.16 600 C 707.62 600 705 596.54 705 593.16 L 705 446.76 C 705 442.94 708.22 440 711.64 440 L 858.32 440 C 861.86 440 865 443.02 865 446.92 L 865 592.76 C 865 597.83 861.06 600 858.2 600 Z" fill="#1ba1e2" stroke="none" pointer-events="all"/><path d="M 717.08 555.94 L 717.08 451.79 L 853.21 451.79 L 853.21 475.65 L 784.98 543.82 L 784.98 488.01 Z" fill="#ffffff" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 158px; height: 1px; padding-top: 607px; margin-left: 706px;"><div data-drawio-colors="color: #ffffff; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(255, 255, 255); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">awsamazon_quick_sight</div></div></div></foreignObject><text x="785" y="619" fill="#ffffff" font-family="Helvetica" font-size="12px" text-anchor="middle">awsamazon_quick_sight</text></switch></g></g><switch><g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/><a transform="translate(0,-5)" xlink:href="https://www.diagrams.net/doc/faq/svg-export-text-problems" target="_blank"><text text-anchor="middle" font-size="10px" x="50%" y="100%">Text is not SVG - cannot display</text></a></switch></svg>