@lukekaalim/act-insight 1.1.0 → 2.0.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 (123) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/InsightApp.module.css +36 -0
  3. package/InsightApp2.ts +82 -0
  4. package/TreeViewer.module.css +3 -8
  5. package/TreeViewer.ts +16 -12
  6. package/Virtual.ts +29 -11
  7. package/assets/icons/ancestor_column.png +0 -0
  8. package/assets/icons/ancestor_column.svg +26 -0
  9. package/assets/icons/ancestor_skip_row_column.png +0 -0
  10. package/assets/icons/ancestor_skip_row_column.svg +52 -0
  11. package/assets/icons/breakpoint.png +0 -0
  12. package/assets/icons/breakpoint.svg +33 -0
  13. package/assets/icons/breakpoint_arrow.png +0 -0
  14. package/assets/icons/breakpoint_arrow.svg +22 -0
  15. package/assets/icons/breakpoint_arrow_paused.png +0 -0
  16. package/assets/icons/breakpoint_arrow_paused.svg +38 -0
  17. package/assets/icons/breakpoint_panel.png +0 -0
  18. package/assets/icons/breakpoint_panel.svg +121 -0
  19. package/assets/icons/breakpoint_unset.png +0 -0
  20. package/assets/icons/breakpoint_unset.svg +26 -0
  21. package/assets/icons/bug.png +0 -0
  22. package/assets/icons/bug.svg +65 -0
  23. package/assets/icons/children.png +0 -0
  24. package/assets/icons/children.svg +38 -0
  25. package/assets/icons/collapse.png +0 -0
  26. package/assets/icons/collapse.svg +38 -0
  27. package/assets/icons/commit.png +0 -0
  28. package/assets/icons/commit.svg +30 -0
  29. package/assets/icons/commit_tree.png +0 -0
  30. package/assets/icons/commit_tree.svg +44 -0
  31. package/assets/icons/effect.png +0 -0
  32. package/assets/icons/effect.svg +28 -0
  33. package/assets/icons/expand.png +0 -0
  34. package/assets/icons/expand.svg +47 -0
  35. package/assets/icons/eye.png +0 -0
  36. package/assets/icons/eye.svg +36 -0
  37. package/assets/icons/eye_closed.png +0 -0
  38. package/assets/icons/eye_closed.svg +32 -0
  39. package/assets/icons/filter.png +0 -0
  40. package/assets/icons/filter.svg +22 -0
  41. package/assets/icons/graph.png +0 -0
  42. package/assets/icons/graph.svg +129 -0
  43. package/assets/icons/history_list.png +0 -0
  44. package/assets/icons/history_list.svg +60 -0
  45. package/assets/icons/hook.png +0 -0
  46. package/assets/icons/hook.svg +22 -0
  47. package/assets/icons/index.ts +76 -0
  48. package/assets/icons/inspector_panel.png +0 -0
  49. package/assets/icons/inspector_panel.svg +135 -0
  50. package/assets/icons/magnifying_glass.png +0 -0
  51. package/assets/icons/magnifying_glass.svg +39 -0
  52. package/assets/icons/pause.png +0 -0
  53. package/assets/icons/pause.svg +34 -0
  54. package/assets/icons/play.png +0 -0
  55. package/assets/icons/play.svg +23 -0
  56. package/assets/icons/reload.png +0 -0
  57. package/assets/icons/reload.svg +39 -0
  58. package/assets/icons/selection.png +0 -0
  59. package/assets/icons/selection.svg +22 -0
  60. package/assets/icons/side_effects.png +0 -0
  61. package/assets/icons/side_effects.svg +48 -0
  62. package/assets/icons/skip.png +0 -0
  63. package/assets/icons/skip.svg +22 -0
  64. package/assets/icons/source.svg +1366 -0
  65. package/assets/icons/step.png +0 -0
  66. package/assets/icons/step.svg +51 -0
  67. package/assets/icons/step_over_children.png +0 -0
  68. package/assets/icons/step_over_children.svg +57 -0
  69. package/assets/icons/thread.png +0 -0
  70. package/assets/icons/thread.svg +32 -0
  71. package/assets/icons/tree_column.png +0 -0
  72. package/assets/icons/tree_column.svg +26 -0
  73. package/assets/icons/tree_end.png +0 -0
  74. package/assets/icons/tree_end.svg +35 -0
  75. package/assets/icons/tree_junction.png +0 -0
  76. package/assets/icons/tree_junction.svg +35 -0
  77. package/assets/icons/vertical_grab_handle.png +0 -0
  78. package/assets/icons/vertical_grab_handle.svg +36 -0
  79. package/components/BreakpointPanel.ts +110 -0
  80. package/components/BreakpointToggle.ts +14 -0
  81. package/components/Button.ts +53 -0
  82. package/components/Checkbox.ts +17 -0
  83. package/components/CommitInspector.ts +161 -0
  84. package/components/CommitTree.ts +295 -0
  85. package/components/ControlBar.ts +60 -0
  86. package/components/EffectTable.ts +125 -0
  87. package/components/FiltersPanel.ts +45 -0
  88. package/components/HistoryList.ts +0 -0
  89. package/components/InspectorPanel.ts +54 -0
  90. package/components/PlaybackBar.ts +42 -0
  91. package/components/ThreadInspector.ts +26 -0
  92. package/components/index.module.css +414 -0
  93. package/lib/controller.ts +222 -0
  94. package/lib/list.ts +82 -0
  95. package/lib/selection.ts +32 -0
  96. package/package.json +4 -4
  97. package/public/icons/icons.svg +520 -0
  98. package/public/icons/icons__breakpoint.png +0 -0
  99. package/public/icons/icons__breakpoint.svg +30 -0
  100. package/public/icons/icons__breakpoint_panel.png +0 -0
  101. package/public/icons/icons__breakpoint_panel.svg +121 -0
  102. package/public/icons/icons__children.png +0 -0
  103. package/public/icons/icons__children.svg +38 -0
  104. package/public/icons/icons__eye.png +0 -0
  105. package/public/icons/icons__eye.svg +36 -0
  106. package/public/icons/icons__inspector_panel.png +0 -0
  107. package/public/icons/icons__inspector_panel.svg +131 -0
  108. package/public/icons/icons__magnifying_glass.png +0 -0
  109. package/public/icons/icons__magnifying_glass.svg +39 -0
  110. package/public/icons/icons__pause.png +0 -0
  111. package/public/icons/icons__pause.svg +34 -0
  112. package/public/icons/icons__play.png +0 -0
  113. package/public/icons/icons__play.svg +23 -0
  114. package/public/icons/icons__skip.png +0 -0
  115. package/public/icons/icons__skip.svg +22 -0
  116. package/public/icons/icons__step.png +0 -0
  117. package/public/icons/icons__step.svg +51 -0
  118. package/utils.ts +71 -7
  119. package/InsightApp.ts +0 -404
  120. package/MenuBar.module.css +0 -18
  121. package/MenuBar.ts +0 -39
  122. package/ScheduleControls.ts +0 -61
  123. package/lookup.ts +0 -185
@@ -0,0 +1,32 @@
1
+ import { createContext, OpaqueID, useContext, useState } from "@lukekaalim/act";
2
+ import { CommitID, EffectID } from "@lukekaalim/act-recon";
3
+
4
+ export type SelectionTarget =
5
+ | { type: 'commit', id: CommitID }
6
+ | { type: 'effect', id: EffectID }
7
+ | { type: 'thread', id: OpaqueID<"ThreadID"> }
8
+ | { type: 'none' }
9
+
10
+ export type SelectionManager = {
11
+ select(target: SelectionTarget): void,
12
+
13
+ target: SelectionTarget,
14
+ }
15
+
16
+ export const useSelectionManager = (): SelectionManager => {
17
+ const [target, select] = useState<SelectionTarget>({ type: 'none' })
18
+
19
+ return {
20
+ target,
21
+ select
22
+ }
23
+ }
24
+
25
+ export const SelectionContext = createContext<SelectionManager>({
26
+ target: { type: 'none' },
27
+ select(target) {},
28
+ })
29
+
30
+ export const useSelection = (): SelectionManager => {
31
+ return useContext(SelectionContext);
32
+ }
package/package.json CHANGED
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "name": "@lukekaalim/act-insight",
3
3
  "main": "index.ts",
4
- "version": "1.1.0",
4
+ "version": "2.0.0",
5
5
  "scripts": {},
6
6
  "dependencies": {
7
7
  "@lukekaalim/act": "*",
8
- "@lukekaalim/act-recon": "3.1.0",
9
- "@lukekaalim/act-web": "5.0.0",
10
- "@lukekaalim/act-debug": "1.0.1",
8
+ "@lukekaalim/act-recon": "4.0.0",
9
+ "@lukekaalim/act-web": "5.1.0",
10
+ "@lukekaalim/act-debug": "2.0.0",
11
11
  "@sindresorhus/string-hash": "^2.0.0",
12
12
  "@types/firefox-webext-browser": "^120.0.4",
13
13
  "lodash-es": "^4.17.21"
@@ -0,0 +1,520 @@
1
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+ <!-- Created with Inkscape (http://www.inkscape.org/) -->
3
+
4
+ <svg
5
+ width="11.941043mm"
6
+ height="11.941043mm"
7
+ viewBox="0 0 11.941043 11.941043"
8
+ version="1.1"
9
+ id="svg1"
10
+ inkscape:version="1.4.4 (dcaf3e7d9e, 2026-05-05)"
11
+ sodipodi:docname="icons.svg"
12
+ inkscape:export-batch-name="icons_"
13
+ inkscape:export-batch-path="/home/lukekaalim/Projects/act/tooling/insight/public/icons"
14
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
15
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
16
+ xmlns="http://www.w3.org/2000/svg"
17
+ xmlns:svg="http://www.w3.org/2000/svg">
18
+ <sodipodi:namedview
19
+ id="namedview1"
20
+ pagecolor="#ffffff"
21
+ bordercolor="#000000"
22
+ borderopacity="0.25"
23
+ inkscape:showpageshadow="2"
24
+ inkscape:pageopacity="0.0"
25
+ inkscape:pagecheckerboard="0"
26
+ inkscape:deskcolor="#d1d1d1"
27
+ inkscape:document-units="mm"
28
+ inkscape:zoom="15.793041"
29
+ inkscape:cx="128.88588"
30
+ inkscape:cy="73.101815"
31
+ inkscape:window-width="1920"
32
+ inkscape:window-height="1018"
33
+ inkscape:window-x="1920"
34
+ inkscape:window-y="30"
35
+ inkscape:window-maximized="1"
36
+ inkscape:current-layer="layer1">
37
+ <inkscape:page
38
+ x="0"
39
+ y="0"
40
+ width="11.941043"
41
+ height="11.941043"
42
+ id="page1"
43
+ margin="0"
44
+ bleed="0"
45
+ inkscape:label="breakpoint" />
46
+ <inkscape:page
47
+ x="12.632051"
48
+ y="0.21253547"
49
+ width="18.858223"
50
+ height="11.940001"
51
+ id="page2"
52
+ margin="0"
53
+ bleed="0"
54
+ inkscape:label="eye" />
55
+ <inkscape:page
56
+ x="1.3267825"
57
+ y="14.594607"
58
+ width="5.5203619"
59
+ height="5.970521"
60
+ id="page4"
61
+ margin="0"
62
+ bleed="0"
63
+ inkscape:label="play" />
64
+ <inkscape:page
65
+ x="8.8373184"
66
+ y="14.570916"
67
+ width="5.8520589"
68
+ height="5.9942141"
69
+ id="page5"
70
+ margin="0"
71
+ bleed="0"
72
+ inkscape:label="pause" />
73
+ <inkscape:page
74
+ x="15.542309"
75
+ y="14.570915"
76
+ width="5.8499999"
77
+ height="5.9900002"
78
+ id="page6"
79
+ margin="0"
80
+ bleed="0"
81
+ inkscape:label="skip" />
82
+ <inkscape:page
83
+ x="23.45562"
84
+ y="14.547223"
85
+ width="5.8499999"
86
+ height="5.9900002"
87
+ id="page7"
88
+ margin="0"
89
+ bleed="0"
90
+ inkscape:label="step" />
91
+ <inkscape:page
92
+ x="30.892826"
93
+ y="14.675767"
94
+ width="5.8499999"
95
+ height="5.9900002"
96
+ id="page8"
97
+ margin="0"
98
+ bleed="0"
99
+ inkscape:label="children" />
100
+ <inkscape:page
101
+ x="-22.744843"
102
+ y="-0.18954036"
103
+ width="11.940001"
104
+ height="11.940001"
105
+ id="page11"
106
+ margin="0"
107
+ bleed="0"
108
+ inkscape:label="breakpoint_panel" />
109
+ <inkscape:page
110
+ x="33.785568"
111
+ y="0"
112
+ width="11.940001"
113
+ height="11.940001"
114
+ id="page13"
115
+ margin="0"
116
+ bleed="0"
117
+ inkscape:label="magnifying_glass" />
118
+ <inkscape:page
119
+ x="-22.918322"
120
+ y="14.74278"
121
+ width="11.940001"
122
+ height="11.940001"
123
+ id="page14"
124
+ margin="0"
125
+ bleed="0"
126
+ inkscape:label="inspector_panel" />
127
+ </sodipodi:namedview>
128
+ <defs
129
+ id="defs1">
130
+ <marker
131
+ style="overflow:visible"
132
+ id="Triangle"
133
+ refX="0"
134
+ refY="0"
135
+ orient="auto-start-reverse"
136
+ inkscape:stockid="Triangle arrow"
137
+ markerWidth="0.5"
138
+ markerHeight="0.5"
139
+ viewBox="0 0 1 1"
140
+ inkscape:isstock="true"
141
+ inkscape:collect="always"
142
+ preserveAspectRatio="xMidYMid">
143
+ <path
144
+ transform="scale(0.5)"
145
+ style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt"
146
+ d="M 5.77,0 -2.88,5 V -5 Z"
147
+ id="path135" />
148
+ </marker>
149
+ <inkscape:path-effect
150
+ effect="mirror_symmetry"
151
+ start_point="31.938135,7.2113692"
152
+ end_point="22.778005,7.2050598"
153
+ center_point="27.35807,7.2082145"
154
+ id="path-effect3"
155
+ is_visible="true"
156
+ lpeversion="1.2"
157
+ lpesatellites=""
158
+ mode="free"
159
+ discard_orig_path="false"
160
+ fuse_paths="true"
161
+ oposite_fuse="true"
162
+ split_items="false"
163
+ split_open="false"
164
+ link_styles="false" />
165
+ </defs>
166
+ <g
167
+ inkscape:label="Layer 1"
168
+ inkscape:groupmode="layer"
169
+ id="layer1"
170
+ transform="translate(-5.4966703,-2.2270989)">
171
+ <circle
172
+ style="fill:#d76a51;fill-opacity:1;stroke-width:0.20519"
173
+ id="path1"
174
+ cx="11.467192"
175
+ cy="8.1976204"
176
+ r="4.6302686" />
177
+ <circle
178
+ style="fill:#c83d1d;fill-opacity:1;stroke-width:0.162849"
179
+ id="path1-3"
180
+ cx="11.467192"
181
+ cy="8.1976204"
182
+ r="3.6748166" />
183
+ <path
184
+ style="fill:#5d7388;fill-opacity:1;stroke-width:0.264583"
185
+ d="m 22.981969,7.2052003 c 0.719459,-0.8803573 2.613334,-2.0669287 4.447971,-2.0669287 1.834461,0 3.573513,1.2636232 4.342199,2.0729833 -0.7698,0.8083004 -2.510591,2.0695267 -4.345051,2.0669996 -1.834635,-0.00253 -3.726873,-1.1917066 -4.445119,-2.0730542 z"
186
+ id="path2"
187
+ sodipodi:nodetypes="csc"
188
+ inkscape:path-effect="#path-effect3"
189
+ inkscape:original-d="m 22.946229,7.2499183 c 0.690656,-0.8843033 2.61782,-2.1116467 4.483711,-2.1116467 1.86589,0 3.633073,1.3072917 4.380848,2.1141733"
190
+ transform="matrix(1.9056361,0,0,1.9056361,-24.746264,-5.0946662)" />
191
+ <ellipse
192
+ style="fill:#ffffff;fill-opacity:1;stroke-width:0.523901"
193
+ id="path3"
194
+ cx="27.378677"
195
+ cy="8.5404434"
196
+ rx="4.3542557"
197
+ ry="2.8054268" />
198
+ <circle
199
+ style="fill:#5d7388;fill-opacity:1;stroke-width:0.778009"
200
+ id="path4"
201
+ cx="27.274181"
202
+ cy="8.5056067"
203
+ r="1.6023663" />
204
+ <path
205
+ sodipodi:type="star"
206
+ style="fill:#5d7388;fill-opacity:1;stroke-width:0.264583"
207
+ id="path5"
208
+ inkscape:flatsided="false"
209
+ sodipodi:sides="3"
210
+ sodipodi:cx="7.9091253"
211
+ sodipodi:cy="18.477663"
212
+ sodipodi:r1="2.9789548"
213
+ sodipodi:r2="1.4894774"
214
+ sodipodi:arg1="0"
215
+ sodipodi:arg2="1.0471976"
216
+ inkscape:rounded="0"
217
+ inkscape:randomized="0"
218
+ d="m 10.88808,18.477663 -2.234216,1.289925 -2.2342161,1.289926 0,-2.579851 0,-2.57985 2.2342162,1.289925 z"
219
+ inkscape:transform-center-x="-0.74473869"
220
+ transform="translate(0.9381769,1.3402527)" />
221
+ <path
222
+ id="path5-2"
223
+ style="fill:#5d7388;fill-opacity:1;stroke-width:0.264583"
224
+ inkscape:transform-center-x="-0.74473869"
225
+ d="m 21.597294,17.238069 v 2.579688 2.580204 l 2.233972,-1.29036 1.112077,-0.642339 v 1.727027 c 0,0.04737 0.03841,0.08527 0.08578,0.08527 h 1.335836 c 0.04737,0 0.08578,-0.03789 0.08578,-0.08527 v -4.68912 c 0,-0.04737 -0.03841,-0.08527 -0.08578,-0.08527 h -1.335836 c -0.04737,0 -0.08578,0.03789 -0.08578,0.08527 v 1.667082 l -1.112077,-0.642338 z" />
226
+ <rect
227
+ style="fill:#5d7388;fill-opacity:1;stroke-width:0.22508"
228
+ id="rect5"
229
+ width="1.5069969"
230
+ height="4.8598962"
231
+ x="15.228702"
232
+ y="17.417656"
233
+ ry="0.085511364" />
234
+ <rect
235
+ style="fill:#5d7388;fill-opacity:1;stroke-width:0.22508"
236
+ id="rect5-5"
237
+ width="1.5069969"
238
+ height="4.8598962"
239
+ x="17.788412"
240
+ y="17.417656"
241
+ ry="0.085511364" />
242
+ <circle
243
+ style="fill:#5d7388;fill-opacity:1;stroke-width:0.293366"
244
+ id="path7"
245
+ cx="30.252504"
246
+ cy="20.765179"
247
+ r="1.0245281" />
248
+ <circle
249
+ style="fill:none;fill-opacity:1;stroke:#5d7388;stroke-width:0.178757;stroke-linejoin:miter;stroke-dasharray:0.178757, 0.357514;stroke-dashoffset:0;stroke-opacity:1"
250
+ id="path7-0"
251
+ cx="33.435463"
252
+ cy="20.764971"
253
+ r="1.0010481" />
254
+ <path
255
+ style="fill:none;fill-opacity:1;stroke:#5d7388;stroke-width:0.265;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Triangle)"
256
+ d="m 30.291345,18.72896 c 0,-1.675316 3.032323,-1.625056 3.049075,-0.134029"
257
+ id="path8"
258
+ sodipodi:nodetypes="cc" />
259
+ <rect
260
+ style="fill:#5d7388;fill-opacity:1;stroke:none;stroke-width:0.264999;stroke-linejoin:miter;stroke-dasharray:0.165, 0.329999;stroke-dashoffset:0;stroke-opacity:1"
261
+ id="rect8"
262
+ width="2.9141829"
263
+ height="2.1678677"
264
+ x="37.26936"
265
+ y="17.228544"
266
+ ry="0.30155686" />
267
+ <path
268
+ style="fill:none;fill-opacity:1;stroke:#5d7388;stroke-width:0.365;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:0.365, 0.365;stroke-dashoffset:0;stroke-opacity:1"
269
+ d="m 38.619832,18.228639 v 4.039579"
270
+ id="path10"
271
+ sodipodi:nodetypes="cc" />
272
+ <path
273
+ style="fill:none;fill-opacity:1;stroke:#5d7388;stroke-width:0.365;stroke-linejoin:miter;stroke-dasharray:0.365, 0.365;stroke-dashoffset:0;stroke-opacity:1"
274
+ d="m 39.173631,20.604732 h 2.037661"
275
+ id="path11"
276
+ sodipodi:nodetypes="cc" />
277
+ <path
278
+ style="fill:none;fill-opacity:1;stroke:#5d7388;stroke-width:0.365;stroke-linejoin:miter;stroke-dasharray:0.365, 0.365;stroke-dashoffset:0;stroke-opacity:1"
279
+ d="m 39.161785,22.061823 h 2.037661"
280
+ id="path11-6"
281
+ sodipodi:nodetypes="cc" />
282
+ <g
283
+ id="g12">
284
+ <rect
285
+ style="fill:#c7d1d9;fill-opacity:1;stroke:#5d7388;stroke-width:0.165;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
286
+ id="rect11"
287
+ width="4.9754343"
288
+ height="9.9508686"
289
+ x="-16.158314"
290
+ y="2.9852602"
291
+ ry="0.521236" />
292
+ <rect
293
+ style="fill:#5d7388;fill-opacity:1;stroke:none;stroke-width:0.165;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
294
+ id="rect12"
295
+ width="3.3841388"
296
+ height="0.63661981"
297
+ x="-15.746336"
298
+ y="3.7683892"
299
+ ry="0.23643248" />
300
+ <rect
301
+ style="fill:#5d7388;fill-opacity:1;stroke:none;stroke-width:0.165;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
302
+ id="rect12-1"
303
+ width="3.3841388"
304
+ height="0.63661981"
305
+ x="-15.059457"
306
+ y="4.6060472"
307
+ ry="0.23643248" />
308
+ <rect
309
+ style="fill:#5d7388;fill-opacity:1;stroke:none;stroke-width:0.165;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
310
+ id="rect12-6"
311
+ width="1.1057094"
312
+ height="0.63662004"
313
+ x="-15.746336"
314
+ y="5.4437051"
315
+ ry="0.23643248" />
316
+ <rect
317
+ style="fill:#5d7388;fill-opacity:1;stroke:none;stroke-width:0.165;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
318
+ id="rect12-1-5"
319
+ width="1.1392158"
320
+ height="0.63662004"
321
+ x="-15.746336"
322
+ y="6.281363"
323
+ ry="0.23643248" />
324
+ <rect
325
+ style="fill:#5d7388;fill-opacity:1;stroke:none;stroke-width:0.165;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
326
+ id="rect12-4"
327
+ width="1.3402537"
328
+ height="0.63662004"
329
+ x="-15.176728"
330
+ y="7.1860337"
331
+ ry="0.23643248" />
332
+ <rect
333
+ style="fill:#5d7388;fill-opacity:1;stroke:none;stroke-width:0.165;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
334
+ id="rect12-1-52"
335
+ width="3.0658281"
336
+ height="0.63661957"
337
+ x="-15.428026"
338
+ y="8.0236921"
339
+ ry="0.23643248" />
340
+ <rect
341
+ style="fill:#5d7388;fill-opacity:1;stroke:none;stroke-width:0.165;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
342
+ id="rect12-6-5"
343
+ width="3.4176464"
344
+ height="0.63661957"
345
+ x="-15.39452"
346
+ y="8.8613501"
347
+ ry="0.23643248" />
348
+ <rect
349
+ style="fill:#5d7388;fill-opacity:1;stroke:none;stroke-width:0.165;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
350
+ id="rect12-1-5-4"
351
+ width="3.3841388"
352
+ height="0.63661981"
353
+ x="-15.746336"
354
+ y="9.699008"
355
+ ry="0.23643248" />
356
+ <rect
357
+ style="fill:#5d7388;fill-opacity:1;stroke:none;stroke-width:0.165;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
358
+ id="rect12-1-5-0"
359
+ width="2.9150507"
360
+ height="0.63661957"
361
+ x="-15.210235"
362
+ y="10.620432"
363
+ ry="0.23643248" />
364
+ <rect
365
+ style="fill:#5d7388;fill-opacity:1;stroke:none;stroke-width:0.165;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
366
+ id="rect12-4-7"
367
+ width="3.3841388"
368
+ height="0.63661981"
369
+ x="-15.260494"
370
+ y="11.525103"
371
+ ry="0.23643248" />
372
+ </g>
373
+ <circle
374
+ style="fill:#d76a51;fill-opacity:1;stroke-width:0.144294"
375
+ id="path1-4"
376
+ cx="-10.329949"
377
+ cy="7.6289997"
378
+ r="3.2561009" />
379
+ <circle
380
+ style="fill:#c83d1d;fill-opacity:1;stroke-width:0.114519"
381
+ id="path1-3-9"
382
+ cx="-10.329949"
383
+ cy="7.6289997"
384
+ r="2.5842073" />
385
+ <g
386
+ id="g12-9"
387
+ transform="translate(0,14.943818)">
388
+ <rect
389
+ style="fill:#c7d1d9;fill-opacity:1;stroke:#5d7388;stroke-width:0.165;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
390
+ id="rect11-5"
391
+ width="4.9754343"
392
+ height="9.9508686"
393
+ x="-16.158314"
394
+ y="2.9852602"
395
+ ry="0.521236" />
396
+ <rect
397
+ style="fill:#5d7388;fill-opacity:1;stroke:none;stroke-width:0.165;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
398
+ id="rect12-0"
399
+ width="3.3841388"
400
+ height="0.63661981"
401
+ x="-15.746336"
402
+ y="3.7683892"
403
+ ry="0.23643248" />
404
+ <rect
405
+ style="fill:#5d7388;fill-opacity:1;stroke:none;stroke-width:0.165;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
406
+ id="rect12-1-4"
407
+ width="3.3841388"
408
+ height="0.63661981"
409
+ x="-15.059457"
410
+ y="4.6060472"
411
+ ry="0.23643248" />
412
+ <rect
413
+ style="fill:#5d7388;fill-opacity:1;stroke:none;stroke-width:0.165;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
414
+ id="rect12-6-8"
415
+ width="1.1057094"
416
+ height="0.63662004"
417
+ x="-15.746336"
418
+ y="5.4437051"
419
+ ry="0.23643248" />
420
+ <rect
421
+ style="fill:#5d7388;fill-opacity:1;stroke:none;stroke-width:0.165;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
422
+ id="rect12-1-5-7"
423
+ width="1.1392158"
424
+ height="0.63662004"
425
+ x="-15.746336"
426
+ y="6.281363"
427
+ ry="0.23643248" />
428
+ <rect
429
+ style="fill:#5d7388;fill-opacity:1;stroke:none;stroke-width:0.165;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
430
+ id="rect12-4-1"
431
+ width="1.3402537"
432
+ height="0.63662004"
433
+ x="-15.176728"
434
+ y="7.1860337"
435
+ ry="0.23643248" />
436
+ <rect
437
+ style="fill:#5d7388;fill-opacity:1;stroke:none;stroke-width:0.165;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
438
+ id="rect12-1-52-7"
439
+ width="3.0658281"
440
+ height="0.63661957"
441
+ x="-15.428026"
442
+ y="8.0236921"
443
+ ry="0.23643248" />
444
+ <rect
445
+ style="fill:#5d7388;fill-opacity:1;stroke:none;stroke-width:0.165;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
446
+ id="rect12-6-5-2"
447
+ width="3.4176464"
448
+ height="0.63661957"
449
+ x="-15.39452"
450
+ y="8.8613501"
451
+ ry="0.23643248" />
452
+ <rect
453
+ style="fill:#5d7388;fill-opacity:1;stroke:none;stroke-width:0.165;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
454
+ id="rect12-1-5-4-7"
455
+ width="3.3841388"
456
+ height="0.63661981"
457
+ x="-15.746336"
458
+ y="9.699008"
459
+ ry="0.23643248" />
460
+ <rect
461
+ style="fill:#5d7388;fill-opacity:1;stroke:none;stroke-width:0.165;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
462
+ id="rect12-1-5-0-2"
463
+ width="2.9150507"
464
+ height="0.63661957"
465
+ x="-15.210235"
466
+ y="10.620432"
467
+ ry="0.23643248" />
468
+ <rect
469
+ style="fill:#5d7388;fill-opacity:1;stroke:none;stroke-width:0.165;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
470
+ id="rect12-4-7-2"
471
+ width="3.3841388"
472
+ height="0.63661981"
473
+ x="-15.260494"
474
+ y="11.525103"
475
+ ry="0.23643248" />
476
+ </g>
477
+ <circle
478
+ style="fill:#5d8862;fill-opacity:1;stroke:none;stroke-width:0.165;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
479
+ id="path13"
480
+ cx="43.689053"
481
+ cy="6.4206791"
482
+ r="3.1274157" />
483
+ <rect
484
+ style="fill:#5d8862;fill-opacity:1;stroke:none;stroke-width:0.165;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
485
+ id="rect13"
486
+ width="10.377335"
487
+ height="2.2960846"
488
+ x="33.192822"
489
+ y="-27.333229"
490
+ ry="0.54492855"
491
+ transform="rotate(45)" />
492
+ <circle
493
+ style="fill:#e0ede1;fill-opacity:1;stroke:none;stroke-width:0.1225;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
494
+ id="path13-9"
495
+ cx="43.689053"
496
+ cy="6.4206791"
497
+ r="2.3218691" />
498
+ <circle
499
+ style="fill:#5d8862;fill-opacity:1;stroke:none;stroke-width:0.112963;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
500
+ id="path13-1"
501
+ cx="-12.251043"
502
+ cy="21.341175"
503
+ r="2.1411114" />
504
+ <rect
505
+ style="fill:#5d8862;fill-opacity:1;stroke:none;stroke-width:0.112963;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
506
+ id="rect13-1"
507
+ width="7.1045971"
508
+ height="1.5719602"
509
+ x="4.8940549"
510
+ y="23.082003"
511
+ ry="0.37307248"
512
+ transform="rotate(45)" />
513
+ <circle
514
+ style="fill:#e0ede1;fill-opacity:1;stroke:none;stroke-width:0.0838667;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
515
+ id="path13-9-5"
516
+ cx="-12.251043"
517
+ cy="21.341175"
518
+ r="1.589613" />
519
+ </g>
520
+ </svg>
@@ -0,0 +1,30 @@
1
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+ <!-- Created with Inkscape (http://www.inkscape.org/) -->
3
+
4
+ <svg
5
+ width="11.941043mm"
6
+ height="11.941043mm"
7
+ viewBox="0 0 11.941043 11.941043"
8
+ version="1.1"
9
+ id="svg1"
10
+ xmlns="http://www.w3.org/2000/svg"
11
+ xmlns:svg="http://www.w3.org/2000/svg">
12
+ <defs
13
+ id="defs1" />
14
+ <g
15
+ id="layer1"
16
+ transform="translate(-5.4966703,-2.2270989)">
17
+ <circle
18
+ style="fill:#d76a51;fill-opacity:1;stroke-width:0.20519"
19
+ id="path1"
20
+ cx="11.467192"
21
+ cy="8.1976204"
22
+ r="4.6302686" />
23
+ <circle
24
+ style="fill:#c83d1d;fill-opacity:1;stroke-width:0.162849"
25
+ id="path1-3"
26
+ cx="11.467192"
27
+ cy="8.1976204"
28
+ r="3.6748166" />
29
+ </g>
30
+ </svg>