diff --git a/README.md b/README.md
index b0f80ae2e..8402923f2 100644
--- a/README.md
+++ b/README.md
@@ -228,6 +228,7 @@ let us know and we'll be happy to include it here!
- **Mongo to D2**: [https://github.com/novuhq/mongo-to-D2](https://github.com/novuhq/mongo-to-D2)
- **Pandoc filter**: [https://github.com/ram02z/d2-filter](https://github.com/ram02z/d2-filter)
- **Logseq-D2**: [https://github.com/b-yp/logseq-d2](https://github.com/b-yp/logseq-d2)
+- **ent2d2**: [https://github.com/tmc/ent2d2](https://github.com/b-yp/logseq-d2)
### Misc
@@ -275,5 +276,3 @@ this selected list of featured projects using D2.
- Cloud service emulator (46k stars)
- [Queue Library](https://github.com/golang-queue/queue/tree/master/images)
- Queue is a Golang library for spawning and managing a Goroutine pool
-- [ent2d2](https://github.com/tmc/ent2d2)
- - A project to render entity relation (ER) diagrams for the [Ent](https://entgo.io) ORM.
diff --git a/ci/release/changelogs/next.md b/ci/release/changelogs/next.md
index 8e629a0ab..d38d71c61 100644
--- a/ci/release/changelogs/next.md
+++ b/ci/release/changelogs/next.md
@@ -1,22 +1,22 @@
#### Features ๐
-- `class` field now accepts arrays. See [docs](TODO). [#1256](https://github.com/terrastruct/d2/pull/1256)
-- Pill shape is implemented with rectangles of large border radius. Thanks @Poivey ! [#1006](https://github.com/terrastruct/d2/pull/1006)
-
#### Improvements ๐งน
-- ELK self loops get distributed around the object instead of stacking [#1232](https://github.com/terrastruct/d2/pull/1232)
-- ELK preserves order of objects in cycles [#1235](https://github.com/terrastruct/d2/pull/1235)
-- Improper usages of `class` and `style` get error messages [#1254](https://github.com/terrastruct/d2/pull/1254)
-- Improves scaling of object widths/heights in grid diagrams [#1263](https://github.com/terrastruct/d2/pull/1263)
-- Enhance Markdown parsing error message by appending link to docs [#1269](https://github.com/terrastruct/d2/pull/1269)
+- Use shape specific sizing for grid containers [#1294](https://github.com/terrastruct/d2/pull/1294)
+- Grid diagrams now support nested shapes or grid diagrams [#1309](https://github.com/terrastruct/d2/pull/1309)
+- Grid diagrams will now also use `grid-gap`, `vertical-gap`, and `horizontal-gap` for padding [#1309](https://github.com/terrastruct/d2/pull/1309)
+- Watch mode browser uses an error favicon to easily indicate compiler errors. Thanks @sinyo-matu ! [#1240](https://github.com/terrastruct/d2/pull/1240)
+- Improves grid layout performance when there are many similarly sized shapes. [#1315](https://github.com/terrastruct/d2/pull/1315)
+- Connections and labels now are adjusted for shapes with `3d` or `multiple`. [#1340](https://github.com/terrastruct/d2/pull/1340)
#### Bugfixes โ๏ธ
-- Fixes an issue with markdown labels that are empty when rendered [#1223](https://github.com/terrastruct/d2/issues/1223)
-- ELK self loops always have enough space for long labels [#1232](https://github.com/terrastruct/d2/pull/1232)
-- Fixes panic when setting `shape` to be `class` or `sql_table` within a class [#1251](https://github.com/terrastruct/d2/pull/1251)
-- Fixes rare panic exporting to gifs [#1257](https://github.com/terrastruct/d2/pull/1257)
-- Fixes bad performance in large grid diagrams [#1263](https://github.com/terrastruct/d2/pull/1263)
-- Fixes bug in ELK when container has ID "root" [#1268](https://github.com/terrastruct/d2/pull/1268)
-- Fixes edge case panic with invalid CLI arguments [#1271](https://github.com/terrastruct/d2/pull/1271)
+- Shadow is cut off when `--pad` is 0. Thank you @LeonardsonCC ! [#1326](https://github.com/terrastruct/d2/pull/1326)
+- Fixes grid layout overwriting label placements for nested objects. [#1345](https://github.com/terrastruct/d2/pull/1345)
+- Fixes fonts not rendering correctly on certain platforms. Thanks @mikeday for identifying the solution. [#1356](https://github.com/terrastruct/d2/pull/1356)
+- Fixes folders not rendering in animations (`--animate-interval`) [#1357](https://github.com/terrastruct/d2/pull/1357)
+- Fixes panic using reserved keywords as containers [#1358](https://github.com/terrastruct/d2/pull/1358)
+- When multiple classes are applied changing different attributes of arrowheads, they are
+ all applied instead of only the last one [#1362](https://github.com/terrastruct/d2/pull/1362)
+- Prevent empty block strings [#1364](https://github.com/terrastruct/d2/pull/1364)
+- Fixes dagre mis-aligning a nested shape's connection. [#1370](https://github.com/terrastruct/d2/pull/1370)
diff --git a/ci/release/changelogs/v0.4.2.md b/ci/release/changelogs/v0.4.2.md
new file mode 100644
index 000000000..a6dd73365
--- /dev/null
+++ b/ci/release/changelogs/v0.4.2.md
@@ -0,0 +1,55 @@
+This release improves on the features introduced in 0.4, with `class` keyword now accepting multiple class values with an array, and grid diagrams becoming faster and more robust.
+
+Multiple classes example:
+
+
+
+```d2
+classes: {
+ base: {
+ style: {
+ stroke-dash: 2
+ border-radius: 5
+ font: mono
+ text-transform: uppercase
+ }
+ }
+ error: {
+ style.fill: "#e07d7d"
+ style.stroke: "#a60c0c"
+ style.font-color: white
+ }
+ success: {
+ style.fill: "#86f499"
+ style.stroke: "#017f07"
+ style.font-color: black
+ }
+}
+
+server-1.class: [base; error]
+server-2.class: [base; success]
+
+```
+
+#### Features ๐
+
+- `class` field now accepts arrays. See [docs](https://d2lang.com/tour/classes/#multiple-classes). [#1256](https://github.com/terrastruct/d2/pull/1256)
+- Pill shape is implemented with rectangles of large border radius. See [docs](https://d2lang.com/tour/style/#border-radius). Thanks @Poivey ! [#1006](https://github.com/terrastruct/d2/pull/1006)
+
+#### Improvements ๐งน
+
+- ELK self loops get distributed around the object instead of stacking [#1232](https://github.com/terrastruct/d2/pull/1232)
+- ELK preserves order of objects in cycles [#1235](https://github.com/terrastruct/d2/pull/1235)
+- Improper usages of `class` and `style` get error messages [#1254](https://github.com/terrastruct/d2/pull/1254)
+- Improves scaling of object widths/heights in grid diagrams [#1263](https://github.com/terrastruct/d2/pull/1263)
+- Enhance Markdown parsing error message by appending link to docs [#1269](https://github.com/terrastruct/d2/pull/1269)
+
+#### Bugfixes โ๏ธ
+
+- Fixes an issue with markdown labels that are empty when rendered [#1223](https://github.com/terrastruct/d2/issues/1223)
+- ELK self loops always have enough space for long labels [#1232](https://github.com/terrastruct/d2/pull/1232)
+- Fixes panic when setting `shape` to be `class` or `sql_table` within a class [#1251](https://github.com/terrastruct/d2/pull/1251)
+- Fixes rare panic exporting to gifs [#1257](https://github.com/terrastruct/d2/pull/1257)
+- Fixes bad performance in large grid diagrams [#1263](https://github.com/terrastruct/d2/pull/1263)
+- Fixes bug in ELK when container has ID "root" [#1268](https://github.com/terrastruct/d2/pull/1268)
+- Fixes edge case panic with invalid CLI arguments [#1271](https://github.com/terrastruct/d2/pull/1271)
diff --git a/d2ast/d2ast.go b/d2ast/d2ast.go
index 282c3509f..63a7d07f9 100644
--- a/d2ast/d2ast.go
+++ b/d2ast/d2ast.go
@@ -611,9 +611,13 @@ func (mk1 *Key) Equals(mk2 *Key) bool {
return false
}
if (mk1.Value.Map == nil) != (mk2.Value.Map == nil) {
- return false
- }
- if (mk1.Value.Unbox() == nil) != (mk2.Value.Unbox() == nil) {
+ if mk1.Value.Map != nil && len(mk1.Value.Map.Nodes) > 0 {
+ return false
+ }
+ if mk2.Value.Map != nil && len(mk2.Value.Map.Nodes) > 0 {
+ return false
+ }
+ } else if (mk1.Value.Unbox() == nil) != (mk2.Value.Unbox() == nil) {
return false
}
@@ -638,7 +642,7 @@ func (mk1 *Key) Equals(mk2 *Key) bool {
}
}
- if mk1.Value.Map != nil {
+ if mk1.Value.Map != nil && len(mk1.Value.Map.Nodes) > 0 {
if len(mk1.Value.Map.Nodes) != len(mk2.Value.Map.Nodes) {
return false
}
diff --git a/d2cli/main.go b/d2cli/main.go
index 2f87fee80..0db873bc6 100644
--- a/d2cli/main.go
+++ b/d2cli/main.go
@@ -641,10 +641,9 @@ func render(ctx context.Context, ms *xmain.State, compileDur time.Duration, plug
ms.Log.Success.Printf("successfully compiled %s to %s in %s", ms.HumanPath(inputPath), ms.HumanPath(boardOutputPath), dur)
}
boards = append([][]byte{out}, boards...)
- return boards, nil
}
- return nil, nil
+ return boards, nil
}
func _render(ctx context.Context, ms *xmain.State, plugin d2plugin.Plugin, opts d2svg.RenderOpts, outputPath string, bundle, forceAppendix bool, page playwright.Page, ruler *textmeasure.Ruler, diagram *d2target.Diagram) ([]byte, error) {
diff --git a/d2cli/static/favicon-err.ico b/d2cli/static/favicon-err.ico
new file mode 100644
index 000000000..5619a4ebd
Binary files /dev/null and b/d2cli/static/favicon-err.ico differ
diff --git a/d2cli/static/favicon.ico b/d2cli/static/favicon.ico
new file mode 100644
index 000000000..452e6dcf6
Binary files /dev/null and b/d2cli/static/favicon.ico differ
diff --git a/d2cli/static/watch.js b/d2cli/static/watch.js
index 71fa9436f..3cb3a75e1 100644
--- a/d2cli/static/watch.js
+++ b/d2cli/static/watch.js
@@ -28,7 +28,7 @@ function init(reconnectDelay) {
// we can't just set `d2SVG.innerHTML = msg.svg` need to parse this as xml not html
const parsedXML = new DOMParser().parseFromString(msg.svg, "text/xml");
d2SVG.replaceChildren(parsedXML.documentElement);
-
+ changeFavicon("./static/favicon.ico");
const svgEl = d2SVG.querySelector("#d2-svg");
// just use inner SVG in watch mode
svgEl.parentElement.replaceWith(svgEl);
@@ -56,6 +56,7 @@ function init(reconnectDelay) {
if (msg.err) {
d2ErrDiv.innerText = msg.err;
d2ErrDiv.style.display = "block";
+ changeFavicon("./static/favicon-err.ico");
d2ErrDiv.scrollIntoView();
}
};
@@ -73,3 +74,8 @@ function init(reconnectDelay) {
}, reconnectDelay);
};
}
+
+const changeFavicon = function (iconURL) {
+ const faviconLink = document.getElementById("favicon");
+ faviconLink.href = iconURL;
+};
diff --git a/d2cli/watch.go b/d2cli/watch.go
index d1a2c64f0..6b1c5412c 100644
--- a/d2cli/watch.go
+++ b/d2cli/watch.go
@@ -429,6 +429,7 @@ func (w *watcher) handleRoot(hw http.ResponseWriter, r *http.Request) {
%s
+
diff --git a/d2compiler/compile.go b/d2compiler/compile.go
index 46d854cb7..661f697f0 100644
--- a/d2compiler/compile.go
+++ b/d2compiler/compile.go
@@ -210,8 +210,8 @@ func (c *compiler) compileField(obj *d2graph.Object, f *d2ir.Field) {
c.compileReserved(&obj.Attributes, f)
return
} else if f.Name == "style" {
- if f.Map() == nil {
- c.errorf(f.LastRef().AST(), `"style" expected to be set to a map, or contain an additional keyword like "style.opacity: 0.4"`)
+ if f.Map() == nil || len(f.Map().Fields) == 0 {
+ c.errorf(f.LastRef().AST(), `"style" expected to be set to a map of key-values, or contain an additional keyword like "style.opacity: 0.4"`)
return
}
c.compileStyle(&obj.Attributes, f.Map())
@@ -270,6 +270,9 @@ func (c *compiler) compileLabel(attrs *d2graph.Attributes, f d2ir.Node) {
// TODO: Delete instead.
attrs.Label.Value = scalar.ScalarString()
case *d2ast.BlockString:
+ if strings.TrimSpace(scalar.ScalarString()) == "" {
+ c.errorf(f.LastPrimaryKey(), "block string cannot be empty")
+ }
attrs.Language = scalar.Tag
fullTag, ok := ShortToFullLanguageAliases[scalar.Tag]
if ok {
@@ -675,10 +678,14 @@ func (c *compiler) compileEdgeField(edge *d2graph.Edge, f *d2ir.Field) {
func (c *compiler) compileArrowheads(edge *d2graph.Edge, f *d2ir.Field) {
var attrs *d2graph.Attributes
if f.Name == "source-arrowhead" {
- edge.SrcArrowhead = &d2graph.Attributes{}
+ if edge.SrcArrowhead == nil {
+ edge.SrcArrowhead = &d2graph.Attributes{}
+ }
attrs = edge.SrcArrowhead
} else {
- edge.DstArrowhead = &d2graph.Attributes{}
+ if edge.DstArrowhead == nil {
+ edge.DstArrowhead = &d2graph.Attributes{}
+ }
attrs = edge.DstArrowhead
}
@@ -847,13 +854,6 @@ func (c *compiler) validateKey(obj *d2graph.Object, f *d2ir.Field) {
if !in && arrowheadIn {
c.errorf(f.LastPrimaryKey(), fmt.Sprintf(`invalid shape, can only set "%s" for arrowheads`, obj.Shape.Value))
}
- case "grid-rows", "grid-columns", "grid-gap", "vertical-gap", "horizontal-gap":
- for _, child := range obj.ChildrenArray {
- if child.IsContainer() {
- c.errorf(f.LastPrimaryKey(),
- fmt.Sprintf(`%#v can only be used on containers with one level of nesting right now. (%#v has nested %#v)`, keyword, child.AbsID(), child.ChildrenArray[0].ID))
- }
- }
}
return
}
diff --git a/d2compiler/compile_test.go b/d2compiler/compile_test.go
index f3e5c65b9..985050a83 100644
--- a/d2compiler/compile_test.go
+++ b/d2compiler/compile_test.go
@@ -610,6 +610,24 @@ x: {
expErr: `d2/testdata/d2compiler/TestCompile/md_block_string_err.d2:4:19: unexpected text after md block string. See https://d2lang.com/tour/text#advanced-block-strings.
d2/testdata/d2compiler/TestCompile/md_block_string_err.d2:5:1: block string must be terminated with |`,
},
+ {
+ name: "no_empty_block_string",
+ text: `Text: |md |`,
+ expErr: `d2/testdata/d2compiler/TestCompile/no_empty_block_string.d2:1:1: block string cannot be empty`,
+ },
+ {
+ name: "no_white_spaces_only_block_string",
+ text: `Text: |md |`,
+ expErr: `d2/testdata/d2compiler/TestCompile/no_white_spaces_only_block_string.d2:1:1: block string cannot be empty`,
+ },
+ {
+ name: "no_new_lines_only_block_string",
+ text: `Text: |md
+
+
+|`,
+ expErr: `d2/testdata/d2compiler/TestCompile/no_new_lines_only_block_string.d2:1:1: block string cannot be empty`,
+ },
{
name: "underscore_edge_existing",
@@ -1700,7 +1718,13 @@ x.a.b`,
name: "tail-style",
text: `myobj.style: 3`,
- expErr: `d2/testdata/d2compiler/TestCompile/tail-style.d2:1:7: "style" expected to be set to a map, or contain an additional keyword like "style.opacity: 0.4"`,
+ expErr: `d2/testdata/d2compiler/TestCompile/tail-style.d2:1:7: "style" expected to be set to a map of key-values, or contain an additional keyword like "style.opacity: 0.4"`,
+ },
+ {
+ name: "tail-style-map",
+
+ text: `myobj.style: {}`,
+ expErr: `d2/testdata/d2compiler/TestCompile/tail-style-map.d2:1:7: "style" expected to be set to a map of key-values, or contain an additional keyword like "style.opacity: 0.4"`,
},
{
name: "bad-style-nesting",
@@ -1716,6 +1740,13 @@ y -> x.style
`,
expErr: `d2/testdata/d2compiler/TestCompile/edge_to_style.d2:2:8: reserved keywords are prohibited in edges`,
},
+ {
+ name: "keyword-container",
+
+ text: `a.near.b
+`,
+ expErr: `d2/testdata/d2compiler/TestCompile/keyword-container.d2:1:3: "near" must be the last part of the key`,
+ },
{
name: "escaped_id",
@@ -2377,11 +2408,17 @@ d2/testdata/d2compiler/TestCompile/grid_edge.d2:6:2: edges in grid diagrams are
a
b
c
- d.invalid descendant
+ d.valid descendant
+ e: {
+ grid-rows: 1
+ grid-columns: 2
+
+ a
+ b
+ }
}
`,
- expErr: `d2/testdata/d2compiler/TestCompile/grid_nested.d2:2:2: "grid-rows" can only be used on containers with one level of nesting right now. ("hey.d" has nested "invalid descendant")
-d2/testdata/d2compiler/TestCompile/grid_nested.d2:3:2: "grid-columns" can only be used on containers with one level of nesting right now. ("hey.d" has nested "invalid descendant")`,
+ expErr: ``,
},
{
name: "classes",
@@ -2460,6 +2497,29 @@ classes.x.shape: diamond
tassert.Equal(t, "diamond", g.Objects[0].Shape.Value)
},
},
+ {
+ name: "nested-array-classes",
+ text: `classes: {
+ one target: {
+ target-arrowhead.label: 1
+ }
+ association: {
+ target-arrowhead.shape: arrow
+ }
+}
+
+a -> b: { class: [one target; association] }
+a -> b: { class: [association; one target] }
+`,
+ assertions: func(t *testing.T, g *d2graph.Graph) {
+ // They have the same, regardless of order of class application
+ // since the classes modify attributes exclusive of each other
+ tassert.Equal(t, "1", g.Edges[0].DstArrowhead.Label.Value)
+ tassert.Equal(t, "1", g.Edges[1].DstArrowhead.Label.Value)
+ tassert.Equal(t, "arrow", g.Edges[0].DstArrowhead.Shape.Value)
+ tassert.Equal(t, "arrow", g.Edges[1].DstArrowhead.Shape.Value)
+ },
+ },
{
name: "class-shape-class",
text: `classes: {
diff --git a/d2exporter/export.go b/d2exporter/export.go
index fc3557c37..ed746b867 100644
--- a/d2exporter/export.go
+++ b/d2exporter/export.go
@@ -11,6 +11,7 @@ import (
"oss.terrastruct.com/d2/d2target"
"oss.terrastruct.com/d2/d2themes"
"oss.terrastruct.com/d2/lib/color"
+ "oss.terrastruct.com/d2/lib/geo"
)
func Export(ctx context.Context, g *d2graph.Graph, fontFamily *d2fonts.FontFamily) (*d2target.Diagram, error) {
@@ -295,9 +296,16 @@ func toConnection(edge *d2graph.Edge, theme *d2themes.Theme) d2target.Connection
connection.LabelPosition = *edge.LabelPosition
}
if edge.LabelPercentage != nil {
- connection.LabelPercentage = *edge.LabelPercentage
+ connection.LabelPercentage = float64(float32(*edge.LabelPercentage))
}
- connection.Route = edge.Route
+ connection.Route = make([]*geo.Point, 0, len(edge.Route))
+ for i := range edge.Route {
+ p := edge.Route[i].Copy()
+ p.TruncateDecimals()
+ p.TruncateFloat32()
+ connection.Route = append(connection.Route, p)
+ }
+
connection.IsCurve = edge.IsCurve
connection.Src = edge.Src.AbsID()
diff --git a/d2graph/d2graph.go b/d2graph/d2graph.go
index 72b48a4ea..5cccdaf07 100644
--- a/d2graph/d2graph.go
+++ b/d2graph/d2graph.go
@@ -1,6 +1,7 @@
package d2graph
import (
+ "bytes"
"context"
"errors"
"fmt"
@@ -1054,6 +1055,45 @@ func (obj *Object) GetDefaultSize(mtexts []*d2target.MText, ruler *textmeasure.R
return &dims, nil
}
+// resizes the object to fit content of the given width and height in its inner box with the given padding.
+// this accounts for the shape of the object, and if there is a desired width or height set for the object
+func (obj *Object) SizeToContent(contentWidth, contentHeight, paddingX, paddingY float64) {
+ var desiredWidth int
+ var desiredHeight int
+ if obj.WidthAttr != nil {
+ desiredWidth, _ = strconv.Atoi(obj.WidthAttr.Value)
+ }
+ if obj.HeightAttr != nil {
+ desiredHeight, _ = strconv.Atoi(obj.HeightAttr.Value)
+ }
+
+ dslShape := strings.ToLower(obj.Shape.Value)
+ shapeType := d2target.DSL_SHAPE_TO_SHAPE_TYPE[dslShape]
+ s := shape.NewShape(shapeType, geo.NewBox(geo.NewPoint(0, 0), contentWidth, contentHeight))
+
+ var fitWidth, fitHeight float64
+ if shapeType == shape.PERSON_TYPE {
+ fitWidth = contentWidth + paddingX
+ fitHeight = contentHeight + paddingY
+ } else {
+ fitWidth, fitHeight = s.GetDimensionsToFit(contentWidth, contentHeight, paddingX, paddingY)
+ }
+ obj.Width = math.Max(float64(desiredWidth), fitWidth)
+ obj.Height = math.Max(float64(desiredHeight), fitHeight)
+ if s.AspectRatio1() {
+ sideLength := math.Max(obj.Width, obj.Height)
+ obj.Width = sideLength
+ obj.Height = sideLength
+ } else if desiredHeight == 0 || desiredWidth == 0 {
+ switch s.GetType() {
+ case shape.PERSON_TYPE:
+ obj.Width, obj.Height = shape.LimitAR(obj.Width, obj.Height, shape.PERSON_AR_LIMIT)
+ case shape.OVAL_TYPE:
+ obj.Width, obj.Height = shape.LimitAR(obj.Width, obj.Height, shape.OVAL_AR_LIMIT)
+ }
+ }
+}
+
func (obj *Object) OuterNearContainer() *Object {
for obj != nil {
if obj.NearKey != nil {
@@ -1437,7 +1477,6 @@ func (g *Graph) SetDimensions(mtexts []*d2target.MText, ruler *textmeasure.Ruler
contentBox := geo.NewBox(geo.NewPoint(0, 0), float64(defaultDims.Width), float64(defaultDims.Height))
shapeType := d2target.DSL_SHAPE_TO_SHAPE_TYPE[dslShape]
s := shape.NewShape(shapeType, contentBox)
-
paddingX, paddingY := s.GetDefaultPadding()
if desiredWidth != 0 {
paddingX = 0.
@@ -1470,27 +1509,7 @@ func (g *Graph) SetDimensions(mtexts []*d2target.MText, ruler *textmeasure.Ruler
}
}
- var fitWidth, fitHeight float64
- if shapeType == shape.PERSON_TYPE {
- fitWidth = contentBox.Width + paddingX
- fitHeight = contentBox.Height + paddingY
- } else {
- fitWidth, fitHeight = s.GetDimensionsToFit(contentBox.Width, contentBox.Height, paddingX, paddingY)
- }
- obj.Width = math.Max(float64(desiredWidth), fitWidth)
- obj.Height = math.Max(float64(desiredHeight), fitHeight)
- if s.AspectRatio1() {
- sideLength := math.Max(obj.Width, obj.Height)
- obj.Width = sideLength
- obj.Height = sideLength
- } else if desiredHeight == 0 || desiredWidth == 0 {
- switch s.GetType() {
- case shape.PERSON_TYPE:
- obj.Width, obj.Height = shape.LimitAR(obj.Width, obj.Height, shape.PERSON_AR_LIMIT)
- case shape.OVAL_TYPE:
- obj.Width, obj.Height = shape.LimitAR(obj.Width, obj.Height, shape.OVAL_AR_LIMIT)
- }
- }
+ obj.SizeToContent(contentBox.Width, contentBox.Height, paddingX, paddingY)
}
for _, edge := range g.Edges {
usedFont := fontFamily
@@ -1601,9 +1620,6 @@ func Key(k *d2ast.KeyPath) []string {
// All reserved keywords. See init below.
var ReservedKeywords map[string]struct{}
-// All reserved keywords not including style keywords.
-var ReservedKeywords2 map[string]struct{}
-
// Non Style/Holder keywords.
var SimpleReservedKeywords = map[string]struct{}{
"label": {},
@@ -1625,16 +1641,20 @@ var SimpleReservedKeywords = map[string]struct{}{
"vertical-gap": {},
"horizontal-gap": {},
"class": {},
- "classes": {},
}
-// ReservedKeywordHolders are reserved keywords that are meaningless on its own and exist solely to hold a set of reserved keywords
+// ReservedKeywordHolders are reserved keywords that are meaningless on its own and must hold composites
var ReservedKeywordHolders = map[string]struct{}{
"style": {},
"source-arrowhead": {},
"target-arrowhead": {},
}
+// CompositeReservedKeywords are reserved keywords that can hold composites
+var CompositeReservedKeywords = map[string]struct{}{
+ "classes": {},
+}
+
// StyleKeywords are reserved keywords which cannot exist outside of the "style" keyword
var StyleKeywords = map[string]struct{}{
"opacity": {},
@@ -1708,23 +1728,15 @@ func init() {
ReservedKeywords[k] = v
}
for k, v := range ReservedKeywordHolders {
- ReservedKeywords[k] = v
+ CompositeReservedKeywords[k] = v
}
for k, v := range BoardKeywords {
+ CompositeReservedKeywords[k] = v
+ }
+ for k, v := range CompositeReservedKeywords {
ReservedKeywords[k] = v
}
- ReservedKeywords2 = make(map[string]struct{})
- for k, v := range SimpleReservedKeywords {
- ReservedKeywords2[k] = v
- }
- for k, v := range ReservedKeywordHolders {
- ReservedKeywords2[k] = v
- }
- for k, v := range BoardKeywords {
- ReservedKeywords2[k] = v
- }
-
NearConstants = make(map[string]struct{}, len(NearConstantsArray))
for _, k := range NearConstantsArray {
NearConstants[k] = struct{}{}
@@ -1799,3 +1811,28 @@ func (g *Graph) ApplyTheme(themeID int64) error {
g.Theme = &theme
return nil
}
+
+func (g *Graph) PrintString() string {
+ buf := &bytes.Buffer{}
+ fmt.Fprint(buf, "Objects: [")
+ for _, obj := range g.Objects {
+ fmt.Fprintf(buf, "%#v @(%v)", obj.AbsID(), obj.TopLeft.ToString())
+ }
+ fmt.Fprint(buf, "]")
+ return buf.String()
+}
+
+func (obj *Object) IterDescendants(apply func(parent, child *Object)) {
+ for _, c := range obj.ChildrenArray {
+ apply(obj, c)
+ c.IterDescendants(apply)
+ }
+}
+
+func (obj *Object) IsMultiple() bool {
+ return obj.Style.Multiple != nil && obj.Style.Multiple.Value == "true"
+}
+
+func (obj *Object) Is3D() bool {
+ return obj.Style.ThreeDee != nil && obj.Style.ThreeDee.Value == "true"
+}
diff --git a/d2graph/layout.go b/d2graph/layout.go
new file mode 100644
index 000000000..1bec09adc
--- /dev/null
+++ b/d2graph/layout.go
@@ -0,0 +1,315 @@
+package d2graph
+
+import (
+ "strings"
+
+ "oss.terrastruct.com/d2/d2target"
+ "oss.terrastruct.com/d2/lib/geo"
+ "oss.terrastruct.com/d2/lib/label"
+ "oss.terrastruct.com/d2/lib/shape"
+)
+
+func (obj *Object) MoveWithDescendants(dx, dy float64) {
+ obj.TopLeft.X += dx
+ obj.TopLeft.Y += dy
+ for _, child := range obj.ChildrenArray {
+ child.MoveWithDescendants(dx, dy)
+ }
+}
+
+func (obj *Object) MoveWithDescendantsTo(x, y float64) {
+ dx := x - obj.TopLeft.X
+ dy := y - obj.TopLeft.Y
+ obj.MoveWithDescendants(dx, dy)
+}
+
+func (parent *Object) removeChild(child *Object) {
+ delete(parent.Children, strings.ToLower(child.ID))
+ for i := 0; i < len(parent.ChildrenArray); i++ {
+ if parent.ChildrenArray[i] == child {
+ parent.ChildrenArray = append(parent.ChildrenArray[:i], parent.ChildrenArray[i+1:]...)
+ break
+ }
+ }
+}
+
+// remove obj and all descendants from graph, as a new Graph
+func (g *Graph) ExtractAsNestedGraph(obj *Object) *Graph {
+ descendantObjects, edges := pluckObjAndEdges(g, obj)
+
+ tempGraph := NewGraph()
+ tempGraph.Root.ChildrenArray = []*Object{obj}
+ tempGraph.Root.Children[strings.ToLower(obj.ID)] = obj
+
+ for _, descendantObj := range descendantObjects {
+ descendantObj.Graph = tempGraph
+ }
+ tempGraph.Objects = descendantObjects
+ tempGraph.Edges = edges
+
+ obj.Parent.removeChild(obj)
+ obj.Parent = tempGraph.Root
+
+ return tempGraph
+}
+
+func pluckObjAndEdges(g *Graph, obj *Object) (descendantsObjects []*Object, edges []*Edge) {
+ for i := 0; i < len(g.Edges); i++ {
+ edge := g.Edges[i]
+ if edge.Src == obj || edge.Dst == obj {
+ edges = append(edges, edge)
+ g.Edges = append(g.Edges[:i], g.Edges[i+1:]...)
+ i--
+ }
+ }
+
+ for i := 0; i < len(g.Objects); i++ {
+ temp := g.Objects[i]
+ if temp.AbsID() == obj.AbsID() {
+ descendantsObjects = append(descendantsObjects, obj)
+ g.Objects = append(g.Objects[:i], g.Objects[i+1:]...)
+ for _, child := range obj.ChildrenArray {
+ subObjects, subEdges := pluckObjAndEdges(g, child)
+ descendantsObjects = append(descendantsObjects, subObjects...)
+ edges = append(edges, subEdges...)
+ }
+ break
+ }
+ }
+
+ return descendantsObjects, edges
+}
+
+func (g *Graph) InjectNestedGraph(tempGraph *Graph, parent *Object) {
+ obj := tempGraph.Root.ChildrenArray[0]
+ obj.MoveWithDescendantsTo(0, 0)
+ obj.Parent = parent
+ for _, obj := range tempGraph.Objects {
+ obj.Graph = g
+ }
+ g.Objects = append(g.Objects, tempGraph.Objects...)
+ parent.Children[strings.ToLower(obj.ID)] = obj
+ parent.ChildrenArray = append(parent.ChildrenArray, obj)
+ g.Edges = append(g.Edges, tempGraph.Edges...)
+}
+
+// ShiftDescendants moves Object's descendants (not including itself)
+// descendants' edges are also moved by the same dx and dy (the whole route is moved if both ends are a descendant)
+func (obj *Object) ShiftDescendants(dx, dy float64) {
+ // also need to shift edges of descendants that are shifted
+ movedEdges := make(map[*Edge]struct{})
+ for _, e := range obj.Graph.Edges {
+ isSrcDesc := e.Src.IsDescendantOf(obj)
+ isDstDesc := e.Dst.IsDescendantOf(obj)
+
+ if isSrcDesc && isDstDesc {
+ movedEdges[e] = struct{}{}
+ for _, p := range e.Route {
+ p.X += dx
+ p.Y += dy
+ }
+ }
+ }
+
+ obj.IterDescendants(func(_, curr *Object) {
+ curr.TopLeft.X += dx
+ curr.TopLeft.Y += dy
+ for _, e := range obj.Graph.Edges {
+ if _, ok := movedEdges[e]; ok {
+ continue
+ }
+ isSrc := e.Src == curr
+ isDst := e.Dst == curr
+
+ if isSrc && isDst {
+ for _, p := range e.Route {
+ p.X += dx
+ p.Y += dy
+ }
+ } else if isSrc {
+ if dx == 0 {
+ e.ShiftStart(dy, false)
+ } else if dy == 0 {
+ e.ShiftStart(dx, true)
+ } else {
+ e.Route[0].X += dx
+ e.Route[0].Y += dy
+ }
+ } else if isDst {
+ if dx == 0 {
+ e.ShiftEnd(dy, false)
+ } else if dy == 0 {
+ e.ShiftEnd(dx, true)
+ } else {
+ e.Route[len(e.Route)-1].X += dx
+ e.Route[len(e.Route)-1].Y += dy
+ }
+ }
+
+ if isSrc || isDst {
+ movedEdges[e] = struct{}{}
+ }
+ }
+ })
+}
+
+// ShiftStart moves the starting point of the route by delta either horizontally or vertically
+// if subsequent points are in line with the movement, they will be removed (unless it is the last point)
+// start end
+// . โโโโโโผโโโโโผโโโโผโโโโโผโโโโค before
+// . โโโdxโโโบ
+// . โโโโผโโโโผโโโโโผโโโโค after
+func (edge *Edge) ShiftStart(delta float64, isHorizontal bool) {
+ position := func(p *geo.Point) float64 {
+ if isHorizontal {
+ return p.X
+ }
+ return p.Y
+ }
+
+ start := edge.Route[0]
+ next := edge.Route[1]
+ isIncreasing := position(start) < position(next)
+ if isHorizontal {
+ start.X += delta
+ } else {
+ start.Y += delta
+ }
+
+ if isIncreasing == (delta < 0) {
+ // nothing more to do when moving away from the next point
+ return
+ }
+
+ isAligned := func(p *geo.Point) bool {
+ if isHorizontal {
+ return p.Y == start.Y
+ }
+ return p.X == start.X
+ }
+ isPastStart := func(p *geo.Point) bool {
+ if delta > 0 {
+ return position(p) < position(start)
+ } else {
+ return position(p) > position(start)
+ }
+ }
+
+ needsRemoval := false
+ toRemove := make([]bool, len(edge.Route))
+ for i := 1; i < len(edge.Route)-1; i++ {
+ if !isAligned(edge.Route[i]) {
+ break
+ }
+ if isPastStart(edge.Route[i]) {
+ toRemove[i] = true
+ needsRemoval = true
+ }
+ }
+ if needsRemoval {
+ edge.Route = geo.RemovePoints(edge.Route, toRemove)
+ }
+}
+
+// ShiftEnd moves the ending point of the route by delta either horizontally or vertically
+// if prior points are in line with the movement, they will be removed (unless it is the first point)
+func (edge *Edge) ShiftEnd(delta float64, isHorizontal bool) {
+ position := func(p *geo.Point) float64 {
+ if isHorizontal {
+ return p.X
+ }
+ return p.Y
+ }
+
+ end := edge.Route[len(edge.Route)-1]
+ prev := edge.Route[len(edge.Route)-2]
+ isIncreasing := position(prev) < position(end)
+ if isHorizontal {
+ end.X += delta
+ } else {
+ end.Y += delta
+ }
+
+ if isIncreasing == (delta > 0) {
+ // nothing more to do when moving away from the next point
+ return
+ }
+
+ isAligned := func(p *geo.Point) bool {
+ if isHorizontal {
+ return p.Y == end.Y
+ }
+ return p.X == end.X
+ }
+ isPastEnd := func(p *geo.Point) bool {
+ if delta > 0 {
+ return position(p) < position(end)
+ } else {
+ return position(p) > position(end)
+ }
+ }
+
+ needsRemoval := false
+ toRemove := make([]bool, len(edge.Route))
+ for i := len(edge.Route) - 2; i > 0; i-- {
+ if !isAligned(edge.Route[i]) {
+ break
+ }
+ if isPastEnd(edge.Route[i]) {
+ toRemove[i] = true
+ needsRemoval = true
+ }
+ }
+ if needsRemoval {
+ edge.Route = geo.RemovePoints(edge.Route, toRemove)
+ }
+}
+
+// GetModifierElementAdjustments returns width/height adjustments to account for shapes with 3d or multiple
+func (obj *Object) GetModifierElementAdjustments() (dx, dy float64) {
+ if obj.Is3D() {
+ if obj.Shape.Value == d2target.ShapeHexagon {
+ dy = d2target.THREE_DEE_OFFSET / 2
+ } else {
+ dy = d2target.THREE_DEE_OFFSET
+ }
+ dx = d2target.THREE_DEE_OFFSET
+ } else if obj.IsMultiple() {
+ dy = d2target.MULTIPLE_OFFSET
+ dx = d2target.MULTIPLE_OFFSET
+ }
+ return dx, dy
+}
+
+func (obj *Object) ToShape() shape.Shape {
+ tl := obj.TopLeft
+ if tl == nil {
+ tl = geo.NewPoint(0, 0)
+ }
+ dslShape := strings.ToLower(obj.Shape.Value)
+ shapeType := d2target.DSL_SHAPE_TO_SHAPE_TYPE[dslShape]
+ contentBox := geo.NewBox(tl, obj.Width, obj.Height)
+ return shape.NewShape(shapeType, contentBox)
+}
+
+func (obj *Object) GetLabelTopLeft() *geo.Point {
+ if obj.LabelPosition == nil {
+ return nil
+ }
+
+ s := obj.ToShape()
+ labelPosition := label.Position(*obj.LabelPosition)
+
+ var box *geo.Box
+ if labelPosition.IsOutside() {
+ box = s.GetBox()
+ } else {
+ box = s.GetInnerBox()
+ }
+
+ labelTL := labelPosition.GetPointOnBox(box, label.PADDING,
+ float64(obj.LabelDimensions.Width),
+ float64(obj.LabelDimensions.Height),
+ )
+ return labelTL
+}
diff --git a/d2ir/d2ir.go b/d2ir/d2ir.go
index 50fb8c104..bf4b6cdd9 100644
--- a/d2ir/d2ir.go
+++ b/d2ir/d2ir.go
@@ -669,10 +669,9 @@ func (m *Map) ensureField(i int, kp *d2ast.KeyPath, refctx *RefContext) (*Field,
if _, ok := d2graph.ReservedKeywords[strings.ToLower(head)]; ok {
head = strings.ToLower(head)
- }
-
- if head == "class" && i < len(kp.Path)-1 {
- return nil, d2parser.Errorf(kp.Path[i].Unbox(), `"class" must be the last part of the key`)
+ if _, ok := d2graph.CompositeReservedKeywords[head]; !ok && i < len(kp.Path)-1 {
+ return nil, d2parser.Errorf(kp.Path[i].Unbox(), fmt.Sprintf(`"%s" must be the last part of the key`, head))
+ }
}
if head == "_" {
diff --git a/d2layouts/d2dagrelayout/layout.go b/d2layouts/d2dagrelayout/layout.go
index b4c26c655..97734237d 100644
--- a/d2layouts/d2dagrelayout/layout.go
+++ b/d2layouts/d2dagrelayout/layout.go
@@ -119,9 +119,7 @@ func Layout(ctx context.Context, g *d2graph.Graph, opts *ConfigurableOpts) (err
}
if obj.Icon != nil && obj.Shape.Value != d2target.ShapeImage {
- contentBox := geo.NewBox(geo.NewPoint(0, 0), float64(obj.Width), float64(obj.Height))
- shapeType := d2target.DSL_SHAPE_TO_SHAPE_TYPE[obj.Shape.Value]
- s := shape.NewShape(shapeType, contentBox)
+ s := obj.ToShape()
iconSize := d2target.GetIconSize(s.GetInnerBox(), string(label.InsideTopLeft))
// Since dagre container labels are pushed up, we don't want a child container to collide
maxContainerLabelHeight = go2.Max(maxContainerLabelHeight, (iconSize+label.PADDING*2)*2)
@@ -159,7 +157,7 @@ func Layout(ctx context.Context, g *d2graph.Graph, opts *ConfigurableOpts) (err
id := obj.AbsID()
idToObj[id] = obj
- height := obj.Height
+ width, height := obj.Width, obj.Height
if obj.HasLabel() {
if obj.HasOutsideBottomLabel() || obj.Icon != nil {
height += float64(obj.LabelDimensions.Height) + label.PADDING
@@ -168,7 +166,12 @@ func Layout(ctx context.Context, g *d2graph.Graph, opts *ConfigurableOpts) (err
height += float64(obj.LabelDimensions.Height) + label.PADDING
}
}
- loadScript += generateAddNodeLine(id, int(obj.Width), int(height))
+ // reserve extra space for 3d/multiple by providing dagre the larger dimensions
+ dx, dy := obj.GetModifierElementAdjustments()
+ width += dx
+ height += dy
+
+ loadScript += generateAddNodeLine(id, int(width), int(height))
if obj.Parent != g.Root {
loadScript += generateAddParentLine(id, obj.Parent.AbsID())
}
@@ -232,10 +235,10 @@ func Layout(ctx context.Context, g *d2graph.Graph, opts *ConfigurableOpts) (err
// dagre gives center of node
obj.TopLeft = geo.NewPoint(math.Round(dn.X-dn.Width/2), math.Round(dn.Y-dn.Height/2))
- obj.Width = dn.Width
- obj.Height = dn.Height
+ obj.Width = math.Ceil(dn.Width)
+ obj.Height = math.Ceil(dn.Height)
- if obj.HasLabel() {
+ if obj.HasLabel() && obj.LabelPosition == nil {
if len(obj.ChildrenArray) > 0 {
obj.LabelPosition = go2.Pointer(string(label.OutsideTopCenter))
} else if obj.HasOutsideBottomLabel() {
@@ -248,7 +251,7 @@ func Layout(ctx context.Context, g *d2graph.Graph, opts *ConfigurableOpts) (err
obj.LabelPosition = go2.Pointer(string(label.InsideMiddleCenter))
}
}
- if obj.Icon != nil {
+ if obj.Icon != nil && obj.IconPosition == nil {
if len(obj.ChildrenArray) > 0 {
obj.IconPosition = go2.Pointer(string(label.OutsideTopLeft))
obj.LabelPosition = go2.Pointer(string(label.OutsideTopRight))
@@ -381,7 +384,7 @@ func Layout(ctx context.Context, g *d2graph.Graph, opts *ConfigurableOpts) (err
if isHorizontal && e.Src.Parent != g.Root && e.Dst.Parent != g.Root {
moveWholeEdge = true
} else {
- e.Route[0].Y += stepSize
+ e.ShiftStart(stepSize, false)
}
}
}
@@ -390,7 +393,7 @@ func Layout(ctx context.Context, g *d2graph.Graph, opts *ConfigurableOpts) (err
if isHorizontal && e.Dst.Parent != g.Root && e.Src.Parent != g.Root {
moveWholeEdge = true
} else {
- e.Route[len(e.Route)-1].Y += stepSize
+ e.ShiftEnd(stepSize, false)
}
}
}
@@ -407,6 +410,20 @@ func Layout(ctx context.Context, g *d2graph.Graph, opts *ConfigurableOpts) (err
}
}
+ // remove the extra width/height we added for 3d/multiple after all objects/connections are placed
+ // and shift the shapes down accordingly
+ for _, obj := range g.Objects {
+ dx, dy := obj.GetModifierElementAdjustments()
+ if dx != 0 || dy != 0 {
+ obj.TopLeft.Y += dy
+ obj.ShiftDescendants(0, dy)
+ if !obj.IsContainer() {
+ obj.Width -= dx
+ obj.Height -= dy
+ }
+ }
+ }
+
for _, edge := range g.Edges {
points := edge.Route
startIndex, endIndex := 0, len(points)-1
@@ -453,8 +470,27 @@ func Layout(ctx context.Context, g *d2graph.Graph, opts *ConfigurableOpts) (err
}
}
- srcShape := shape.NewShape(d2target.DSL_SHAPE_TO_SHAPE_TYPE[strings.ToLower(edge.Src.Shape.Value)], edge.Src.Box)
- dstShape := shape.NewShape(d2target.DSL_SHAPE_TO_SHAPE_TYPE[strings.ToLower(edge.Dst.Shape.Value)], edge.Dst.Box)
+ var originalSrcTL, originalDstTL *geo.Point
+ // if the edge passes through 3d/multiple, use the offset box for tracing to border
+ if srcDx, srcDy := edge.Src.GetModifierElementAdjustments(); srcDx != 0 || srcDy != 0 {
+ if start.X > edge.Src.TopLeft.X+srcDx &&
+ start.Y < edge.Src.TopLeft.Y+edge.Src.Height-srcDy {
+ originalSrcTL = edge.Src.TopLeft.Copy()
+ edge.Src.TopLeft.X += srcDx
+ edge.Src.TopLeft.Y -= srcDy
+ }
+ }
+ if dstDx, dstDy := edge.Dst.GetModifierElementAdjustments(); dstDx != 0 || dstDy != 0 {
+ if end.X > edge.Dst.TopLeft.X+dstDx &&
+ end.Y < edge.Dst.TopLeft.Y+edge.Dst.Height-dstDy {
+ originalDstTL = edge.Dst.TopLeft.Copy()
+ edge.Dst.TopLeft.X += dstDx
+ edge.Dst.TopLeft.Y -= dstDy
+ }
+ }
+
+ srcShape := edge.Src.ToShape()
+ dstShape := edge.Dst.ToShape()
// trace the edge to the specific shape's border
points[startIndex] = shape.TraceToShapeBorder(srcShape, start, points[startIndex+1])
@@ -517,6 +553,16 @@ func Layout(ctx context.Context, g *d2graph.Graph, opts *ConfigurableOpts) (err
if edge.Label.Value != "" {
edge.LabelPosition = go2.Pointer(string(label.InsideMiddleCenter))
}
+
+ // undo 3d/multiple offset
+ if originalSrcTL != nil {
+ edge.Src.TopLeft.X = originalSrcTL.X
+ edge.Src.TopLeft.Y = originalSrcTL.Y
+ }
+ if originalDstTL != nil {
+ edge.Dst.TopLeft.X = originalDstTL.X
+ edge.Dst.TopLeft.Y = originalDstTL.Y
+ }
}
return nil
diff --git a/d2layouts/d2elklayout/layout.go b/d2layouts/d2elklayout/layout.go
index 91da30b6f..2fb5e160d 100644
--- a/d2layouts/d2elklayout/layout.go
+++ b/d2layouts/d2elklayout/layout.go
@@ -222,6 +222,10 @@ func Layout(ctx context.Context, g *d2graph.Graph, opts *ConfigurableOpts) (err
}
width = go2.Max(width, float64(obj.LabelDimensions.Width))
}
+ // reserve extra space for 3d/multiple by providing elk the larger dimensions
+ dx, dy := obj.GetModifierElementAdjustments()
+ width += dx
+ height += dy
n := &ELKNode{
ID: obj.AbsID(),
@@ -400,10 +404,10 @@ func Layout(ctx context.Context, g *d2graph.Graph, opts *ConfigurableOpts) (err
parentY = parent.TopLeft.Y
}
obj.TopLeft = geo.NewPoint(parentX+n.X, parentY+n.Y)
- obj.Width = n.Width
- obj.Height = n.Height
+ obj.Width = math.Ceil(n.Width)
+ obj.Height = math.Ceil(n.Height)
- if obj.HasLabel() {
+ if obj.HasLabel() && obj.LabelPosition == nil {
if len(obj.ChildrenArray) > 0 {
obj.LabelPosition = go2.Pointer(string(label.InsideTopCenter))
} else if obj.HasOutsideBottomLabel() {
@@ -415,7 +419,7 @@ func Layout(ctx context.Context, g *d2graph.Graph, opts *ConfigurableOpts) (err
obj.LabelPosition = go2.Pointer(string(label.InsideMiddleCenter))
}
}
- if obj.Icon != nil {
+ if obj.Icon != nil && obj.IconPosition == nil {
if len(obj.ChildrenArray) > 0 {
obj.IconPosition = go2.Pointer(string(label.InsideTopLeft))
obj.LabelPosition = go2.Pointer(string(label.InsideTopRight))
@@ -454,10 +458,51 @@ func Layout(ctx context.Context, g *d2graph.Graph, opts *ConfigurableOpts) (err
Y: parentY + s.End.Y,
})
}
+ edge.Route = points
+ }
+
+ // remove the extra width/height we added for 3d/multiple after all objects/connections are placed
+ // and shift the shapes down accordingly
+ for _, obj := range g.Objects {
+ dx, dy := obj.GetModifierElementAdjustments()
+ if dx != 0 || dy != 0 {
+ obj.TopLeft.Y += dy
+ obj.ShiftDescendants(0, dy)
+ if !obj.IsContainer() {
+ obj.Width -= dx
+ obj.Height -= dy
+ }
+ }
+ }
+
+ for _, edge := range g.Edges {
+ points := edge.Route
startIndex, endIndex := 0, len(points)-1
- srcShape := shape.NewShape(d2target.DSL_SHAPE_TO_SHAPE_TYPE[strings.ToLower(edge.Src.Shape.Value)], edge.Src.Box)
- dstShape := shape.NewShape(d2target.DSL_SHAPE_TO_SHAPE_TYPE[strings.ToLower(edge.Dst.Shape.Value)], edge.Dst.Box)
+ start := points[startIndex]
+ end := points[endIndex]
+
+ var originalSrcTL, originalDstTL *geo.Point
+ // if the edge passes through 3d/multiple, use the offset box for tracing to border
+ if srcDx, srcDy := edge.Src.GetModifierElementAdjustments(); srcDx != 0 || srcDy != 0 {
+ if start.X > edge.Src.TopLeft.X+srcDx &&
+ start.Y < edge.Src.TopLeft.Y+edge.Src.Height-srcDy {
+ originalSrcTL = edge.Src.TopLeft.Copy()
+ edge.Src.TopLeft.X += srcDx
+ edge.Src.TopLeft.Y -= srcDy
+ }
+ }
+ if dstDx, dstDy := edge.Dst.GetModifierElementAdjustments(); dstDx != 0 || dstDy != 0 {
+ if end.X > edge.Dst.TopLeft.X+dstDx &&
+ end.Y < edge.Dst.TopLeft.Y+edge.Dst.Height-dstDy {
+ originalDstTL = edge.Dst.TopLeft.Copy()
+ edge.Dst.TopLeft.X += dstDx
+ edge.Dst.TopLeft.Y -= dstDy
+ }
+ }
+
+ srcShape := edge.Src.ToShape()
+ dstShape := edge.Dst.ToShape()
// trace the edge to the specific shape's border
points[startIndex] = shape.TraceToShapeBorder(srcShape, points[startIndex], points[startIndex+1])
@@ -468,6 +513,16 @@ func Layout(ctx context.Context, g *d2graph.Graph, opts *ConfigurableOpts) (err
}
edge.Route = points
+
+ // undo 3d/multiple offset
+ if originalSrcTL != nil {
+ edge.Src.TopLeft.X = originalSrcTL.X
+ edge.Src.TopLeft.Y = originalSrcTL.Y
+ }
+ if originalDstTL != nil {
+ edge.Dst.TopLeft.X = originalDstTL.X
+ edge.Dst.TopLeft.Y = originalDstTL.Y
+ }
}
deleteBends(g)
@@ -506,10 +561,11 @@ func deleteBends(g *d2graph.Graph) {
}
isHorizontal := math.Ceil(start.Y) == math.Ceil(corner.Y)
+ dx, dy := endpoint.GetModifierElementAdjustments()
// Make sure it's still attached
if isHorizontal {
- if end.Y <= endpoint.TopLeft.Y+10 {
+ if end.Y <= endpoint.TopLeft.Y+10-dy {
continue
}
if end.Y >= endpoint.TopLeft.Y+endpoint.Height-10 {
@@ -519,7 +575,7 @@ func deleteBends(g *d2graph.Graph) {
if end.X <= endpoint.TopLeft.X+10 {
continue
}
- if end.X >= endpoint.TopLeft.X+endpoint.Width-10 {
+ if end.X >= endpoint.TopLeft.X+endpoint.Width-10+dx {
continue
}
}
diff --git a/d2layouts/d2grid/constants.go b/d2layouts/d2grid/constants.go
new file mode 100644
index 000000000..5542d90ac
--- /dev/null
+++ b/d2layouts/d2grid/constants.go
@@ -0,0 +1,13 @@
+package d2grid
+
+const (
+ // don't consider layouts with rows longer than targetSize*1.2 or shorter than targetSize/1.2
+ STARTING_THRESHOLD = 1.2
+ // next try layouts with a 25% larger threshold
+ THRESHOLD_STEP_SIZE = 0.25
+ MIN_THRESHOLD_ATTEMPTS = 1
+ MAX_THRESHOLD_ATTEMPTS = 3
+
+ ATTEMPT_LIMIT = 100_000
+ SKIP_LIMIT = 10_000_000
+)
diff --git a/d2layouts/d2grid/grid_diagram.go b/d2layouts/d2grid/grid_diagram.go
index c8b0c28a3..bb02ca94b 100644
--- a/d2layouts/d2grid/grid_diagram.go
+++ b/d2layouts/d2grid/grid_diagram.go
@@ -5,6 +5,7 @@ import (
"strings"
"oss.terrastruct.com/d2/d2graph"
+ "oss.terrastruct.com/d2/lib/geo"
)
type gridDiagram struct {
@@ -95,22 +96,30 @@ func newGridDiagram(root *d2graph.Object) *gridDiagram {
gd.horizontalGap, _ = strconv.Atoi(root.HorizontalGap.Value)
}
+ for _, o := range gd.objects {
+ o.TopLeft = geo.NewPoint(0, 0)
+ }
+
return &gd
}
func (gd *gridDiagram) shift(dx, dy float64) {
for _, obj := range gd.objects {
- obj.TopLeft.X += dx
- obj.TopLeft.Y += dy
+ obj.MoveWithDescendants(dx, dy)
}
}
func (gd *gridDiagram) cleanup(obj *d2graph.Object, graph *d2graph.Graph) {
obj.Children = make(map[string]*d2graph.Object)
obj.ChildrenArray = make([]*d2graph.Object, 0)
- for _, child := range gd.objects {
- obj.Children[strings.ToLower(child.ID)] = child
- obj.ChildrenArray = append(obj.ChildrenArray, child)
+
+ restore := func(parent, child *d2graph.Object) {
+ parent.Children[strings.ToLower(child.ID)] = child
+ parent.ChildrenArray = append(parent.ChildrenArray, child)
+ graph.Objects = append(graph.Objects, child)
+ }
+ for _, child := range gd.objects {
+ restore(obj, child)
+ child.IterDescendants(restore)
}
- graph.Objects = append(graph.Objects, gd.objects...)
}
diff --git a/d2layouts/d2grid/layout.go b/d2layouts/d2grid/layout.go
index dd87f4cb6..390470583 100644
--- a/d2layouts/d2grid/layout.go
+++ b/d2layouts/d2grid/layout.go
@@ -1,12 +1,14 @@
package d2grid
import (
+ "bytes"
"context"
"fmt"
"math"
"sort"
"oss.terrastruct.com/d2/d2graph"
+ "oss.terrastruct.com/d2/d2target"
"oss.terrastruct.com/d2/lib/geo"
"oss.terrastruct.com/d2/lib/label"
"oss.terrastruct.com/util-go/go2"
@@ -29,7 +31,7 @@ const (
// 7. Put grid children back in correct location
func Layout(ctx context.Context, g *d2graph.Graph, layout d2graph.LayoutGraph) d2graph.LayoutGraph {
return func(ctx context.Context, g *d2graph.Graph) error {
- gridDiagrams, objectOrder, err := withoutGridDiagrams(ctx, g)
+ gridDiagrams, objectOrder, err := withoutGridDiagrams(ctx, g, layout)
if err != nil {
return err
}
@@ -45,10 +47,162 @@ func Layout(ctx context.Context, g *d2graph.Graph, layout d2graph.LayoutGraph) d
}
}
-func withoutGridDiagrams(ctx context.Context, g *d2graph.Graph) (gridDiagrams map[string]*gridDiagram, objectOrder map[string]int, err error) {
+func withoutGridDiagrams(ctx context.Context, g *d2graph.Graph, layout d2graph.LayoutGraph) (gridDiagrams map[string]*gridDiagram, objectOrder map[string]int, err error) {
toRemove := make(map[*d2graph.Object]struct{})
gridDiagrams = make(map[string]*gridDiagram)
+ objectOrder = make(map[string]int)
+ for i, obj := range g.Objects {
+ objectOrder[obj.AbsID()] = i
+ }
+
+ var processGrid func(obj *d2graph.Object) error
+ processGrid = func(obj *d2graph.Object) error {
+ for _, child := range obj.ChildrenArray {
+ if child.IsGridDiagram() {
+ if err := processGrid(child); err != nil {
+ return err
+ }
+ } else if len(child.ChildrenArray) > 0 {
+ tempGraph := g.ExtractAsNestedGraph(child)
+ if err := layout(ctx, tempGraph); err != nil {
+ return err
+ }
+ g.InjectNestedGraph(tempGraph, obj)
+
+ sort.SliceStable(g.Objects, func(i, j int) bool {
+ return objectOrder[g.Objects[i].AbsID()] < objectOrder[g.Objects[j].AbsID()]
+ })
+ sort.SliceStable(child.ChildrenArray, func(i, j int) bool {
+ return objectOrder[child.ChildrenArray[i].AbsID()] < objectOrder[child.ChildrenArray[j].AbsID()]
+ })
+ sort.SliceStable(obj.ChildrenArray, func(i, j int) bool {
+ return objectOrder[obj.ChildrenArray[i].AbsID()] < objectOrder[obj.ChildrenArray[j].AbsID()]
+ })
+
+ for _, o := range tempGraph.Objects {
+ toRemove[o] = struct{}{}
+ }
+ }
+ }
+
+ gd, err := layoutGrid(g, obj)
+ if err != nil {
+ return err
+ }
+ obj.Children = make(map[string]*d2graph.Object)
+ obj.ChildrenArray = nil
+
+ if obj.Box != nil {
+ // CONTAINER_PADDING is default, but use gap value if set
+ horizontalPadding, verticalPadding := CONTAINER_PADDING, CONTAINER_PADDING
+ if obj.GridGap != nil || obj.HorizontalGap != nil {
+ horizontalPadding = gd.horizontalGap
+ }
+ if obj.GridGap != nil || obj.VerticalGap != nil {
+ verticalPadding = gd.verticalGap
+ }
+
+ // size shape according to grid
+ obj.SizeToContent(gd.width, gd.height, float64(2*horizontalPadding), float64(2*verticalPadding))
+
+ // compute where the grid should be placed inside shape
+ s := obj.ToShape()
+ innerBox := s.GetInnerBox()
+ if innerBox.TopLeft.X != 0 || innerBox.TopLeft.Y != 0 {
+ gd.shift(innerBox.TopLeft.X, innerBox.TopLeft.Y)
+ }
+
+ // compute how much space the label and icon occupy
+ var occupiedWidth, occupiedHeight float64
+ if obj.Icon != nil {
+ iconSpace := float64(d2target.MAX_ICON_SIZE + 2*label.PADDING)
+ occupiedWidth = iconSpace
+ occupiedHeight = iconSpace
+ }
+
+ var dx, dy float64
+ if obj.LabelDimensions.Height != 0 {
+ occupiedHeight = math.Max(
+ occupiedHeight,
+ float64(obj.LabelDimensions.Height)+2*label.PADDING,
+ )
+ }
+ if obj.LabelDimensions.Width != 0 {
+ // . โโโโโโคโโโโโโโโโโโโโค
+ // . icon label icon
+ // with an icon in top left we need 2x the space to fit the label in the center
+ occupiedWidth *= 2
+ occupiedWidth += float64(obj.LabelDimensions.Width) + 2*label.PADDING
+ if occupiedWidth > obj.Width {
+ dx = (occupiedWidth - obj.Width) / 2
+ obj.Width = occupiedWidth
+ }
+ }
+
+ // also check for grid cells with outside top labels or icons
+ // the first grid object is at the top (and always exists)
+ topY := gd.objects[0].TopLeft.Y
+ highestOutside := topY
+ for _, o := range gd.objects {
+ // we only want to compute label positions for objects at the top of the grid
+ if o.TopLeft.Y > topY {
+ if gd.rowDirected {
+ // if the grid is rowDirected (row1, row2, etc) we can stop after finishing the first row
+ break
+ } else {
+ // otherwise we continue until the next column
+ continue
+ }
+ }
+ if o.LabelPosition != nil {
+ labelPosition := label.Position(*o.LabelPosition)
+ if labelPosition.IsOutside() {
+ labelTL := o.GetLabelTopLeft()
+ if labelTL.Y < highestOutside {
+ highestOutside = labelTL.Y
+ }
+ }
+ }
+ if o.IconPosition != nil {
+ switch label.Position(*o.IconPosition) {
+ case label.OutsideTopLeft, label.OutsideTopCenter, label.OutsideTopRight:
+ iconSpace := float64(d2target.MAX_ICON_SIZE + label.PADDING)
+ if topY-iconSpace < highestOutside {
+ highestOutside = topY - iconSpace
+ }
+ }
+ }
+ }
+ if highestOutside < topY {
+ occupiedHeight += topY - highestOutside + 2*label.PADDING
+ }
+ if occupiedHeight > float64(verticalPadding) {
+ // if the label doesn't fit within the padding, we need to add more
+ dy = occupiedHeight - float64(verticalPadding)
+ obj.Height += dy
+ }
+
+ // we need to center children if we have to expand to fit the container label
+ if dx != 0 || dy != 0 {
+ gd.shift(dx, dy)
+ }
+ }
+
+ if obj.HasLabel() {
+ obj.LabelPosition = go2.Pointer(string(label.InsideTopCenter))
+ }
+ if obj.Icon != nil {
+ obj.IconPosition = go2.Pointer(string(label.InsideTopLeft))
+ }
+ gridDiagrams[obj.AbsID()] = gd
+
+ for _, o := range gd.objects {
+ toRemove[o] = struct{}{}
+ }
+ return nil
+ }
+
if len(g.Objects) > 0 {
queue := make([]*d2graph.Object, 1, len(g.Objects))
queue[0] = g.Root
@@ -63,47 +217,14 @@ func withoutGridDiagrams(ctx context.Context, g *d2graph.Graph) (gridDiagrams ma
continue
}
- gd, err := layoutGrid(g, obj)
- if err != nil {
+ if err := processGrid(obj); err != nil {
return nil, nil, err
}
- obj.Children = make(map[string]*d2graph.Object)
- obj.ChildrenArray = nil
-
- var dx, dy float64
- width := gd.width + 2*CONTAINER_PADDING
- labelWidth := float64(obj.LabelDimensions.Width) + 2*label.PADDING
- if labelWidth > width {
- dx = (labelWidth - width) / 2
- width = labelWidth
- }
- height := gd.height + 2*CONTAINER_PADDING
- labelHeight := float64(obj.LabelDimensions.Height) + 2*label.PADDING
- if labelHeight > CONTAINER_PADDING {
- // if the label doesn't fit within the padding, we need to add more
- grow := labelHeight - CONTAINER_PADDING
- dy = grow / 2
- height += grow
- }
- // we need to center children if we have to expand to fit the container label
- if dx != 0 || dy != 0 {
- gd.shift(dx, dy)
- }
- obj.Box = geo.NewBox(nil, width, height)
-
- obj.LabelPosition = go2.Pointer(string(label.InsideTopCenter))
- gridDiagrams[obj.AbsID()] = gd
-
- for _, o := range gd.objects {
- toRemove[o] = struct{}{}
- }
}
}
- objectOrder = make(map[string]int)
layoutObjects := make([]*d2graph.Object, 0, len(toRemove))
- for i, obj := range g.Objects {
- objectOrder[obj.AbsID()] = i
+ for _, obj := range g.Objects {
if _, exists := toRemove[obj]; !exists {
layoutObjects = append(layoutObjects, obj)
}
@@ -125,10 +246,17 @@ func layoutGrid(g *d2graph.Graph, obj *d2graph.Object) (*gridDiagram, error) {
// position labels and icons
for _, o := range gd.objects {
if o.Icon != nil {
- o.LabelPosition = go2.Pointer(string(label.InsideTopCenter))
- o.IconPosition = go2.Pointer(string(label.InsideMiddleCenter))
+ // don't overwrite position if nested graph layout positioned label/icon
+ if o.LabelPosition == nil {
+ o.LabelPosition = go2.Pointer(string(label.InsideTopCenter))
+ }
+ if o.IconPosition == nil {
+ o.IconPosition = go2.Pointer(string(label.InsideMiddleCenter))
+ }
} else {
- o.LabelPosition = go2.Pointer(string(label.InsideMiddleCenter))
+ if o.LabelPosition == nil {
+ o.LabelPosition = go2.Pointer(string(label.InsideMiddleCenter))
+ }
}
}
@@ -191,7 +319,7 @@ func (gd *gridDiagram) layoutEvenly(g *d2graph.Graph, obj *d2graph.Object) {
}
o.Width = colWidths[j]
o.Height = rowHeights[i]
- o.TopLeft = cursor.Copy()
+ o.MoveWithDescendantsTo(cursor.X, cursor.Y)
cursor.X += o.Width + horizontalGap
}
cursor.X = 0
@@ -206,7 +334,7 @@ func (gd *gridDiagram) layoutEvenly(g *d2graph.Graph, obj *d2graph.Object) {
}
o.Width = colWidths[j]
o.Height = rowHeights[i]
- o.TopLeft = cursor.Copy()
+ o.MoveWithDescendantsTo(cursor.X, cursor.Y)
cursor.Y += o.Height + verticalGap
}
cursor.X += colWidths[j] + horizontalGap
@@ -279,6 +407,8 @@ func (gd *gridDiagram) layoutDynamic(g *d2graph.Graph, obj *d2graph.Object) {
maxX = math.Max(maxX, rowWidth)
}
+ // TODO if object is a nested grid, consider growing descendants according to the inner grid layout
+
// then expand thinnest objects to make each row the same width
// . โAโโโโโโโโโโโโโโ โBโโโ โCโโโโโโโโโโ โฌ maxHeight(A,B,C)
// . โ โ โ โ โ โ โ
@@ -342,7 +472,7 @@ func (gd *gridDiagram) layoutDynamic(g *d2graph.Graph, obj *d2graph.Object) {
for _, row := range layout {
rowHeight := 0.
for _, o := range row {
- o.TopLeft = cursor.Copy()
+ o.MoveWithDescendantsTo(cursor.X, cursor.Y)
cursor.X += o.Width + horizontalGap
rowHeight = math.Max(rowHeight, o.Height)
}
@@ -430,7 +560,7 @@ func (gd *gridDiagram) layoutDynamic(g *d2graph.Graph, obj *d2graph.Object) {
for _, column := range layout {
colWidth := 0.
for _, o := range column {
- o.TopLeft = cursor.Copy()
+ o.MoveWithDescendantsTo(cursor.X, cursor.Y)
cursor.Y += o.Height + verticalGap
colWidth = math.Max(colWidth, o.Width)
}
@@ -452,6 +582,7 @@ func (gd *gridDiagram) layoutDynamic(g *d2graph.Graph, obj *d2graph.Object) {
// generate the best layout of objects aiming for each row to be the targetSize width
// if columns is true, each column aims to have the targetSize height
func (gd *gridDiagram) getBestLayout(targetSize float64, columns bool) [][]*d2graph.Object {
+ debug := false
var nCuts int
if columns {
nCuts = gd.columns - 1
@@ -462,6 +593,23 @@ func (gd *gridDiagram) getBestLayout(targetSize float64, columns bool) [][]*d2gr
return genLayout(gd.objects, nil)
}
+ var bestLayout [][]*d2graph.Object
+ bestDist := math.MaxFloat64
+ fastIsBest := false
+ // try fast layout algorithm as a baseline
+ if fastLayout := gd.fastLayout(targetSize, nCuts, columns); fastLayout != nil {
+ dist := getDistToTarget(fastLayout, targetSize, float64(gd.horizontalGap), float64(gd.verticalGap), columns)
+ if debug {
+ fmt.Printf("fast dist %v dist per row %v\n", dist, dist/(float64(nCuts)+1))
+ }
+ if dist == 0 {
+ return fastLayout
+ }
+ bestDist = dist
+ bestLayout = fastLayout
+ fastIsBest = true
+ }
+
var gap float64
if columns {
gap = float64(gd.verticalGap)
@@ -476,17 +624,24 @@ func (gd *gridDiagram) getBestLayout(targetSize float64, columns bool) [][]*d2gr
}
}
- debug := false
+ sizes := []float64{}
+ for _, obj := range gd.objects {
+ size := getSize(obj)
+ sizes = append(sizes, size)
+ }
+ sd := stddev(sizes)
+ if debug {
+ fmt.Printf("sizes (%d): %v\n", len(sizes), sizes)
+ fmt.Printf("std dev: %v; targetSize %v\n", sd, targetSize)
+ }
+
skipCount := 0
+ count := 0
// quickly eliminate bad row groupings
startingCache := make(map[int]bool)
- // try to find a layout with all rows within 1.2*targetSize
- // skip options with a row that is 1.2*longer or shorter
// Note: we want a low threshold to explore good options within attemptLimit,
// but the best option may require a few rows that are far from the target size.
- okThreshold := 1.2
- // if we don't find a layout try 25% larger threshold
- thresholdStep := 0.25
+ okThreshold := STARTING_THRESHOLD
rowOk := func(row []*d2graph.Object, starting bool) (ok bool) {
if starting {
// we can cache results from starting positions since they repeat and don't change
@@ -509,21 +664,24 @@ func (gd *gridDiagram) getBestLayout(targetSize float64, columns bool) [][]*d2gr
// if multiple nodes are too big, it isn't ok. but a single node can't shrink so only check here
if rowSize > okThreshold*targetSize {
skipCount++
+ if skipCount >= SKIP_LIMIT {
+ // there may even be too many to skip
+ return true
+ }
return false
}
}
// row is too small to be good overall
if rowSize < targetSize/okThreshold {
skipCount++
+ if skipCount >= SKIP_LIMIT {
+ return true
+ }
return false
}
return true
}
- var bestLayout [][]*d2graph.Object
- bestDist := math.MaxFloat64
- count := 0
- attemptLimit := 100_000
// get all options for where to place these cuts, preferring later cuts over earlier cuts
// with 5 objects and 2 cuts we have these options:
// . A B C โ D โ E <- these cuts would produce: โAโโ โBโโ โCโโ
@@ -539,33 +697,94 @@ func (gd *gridDiagram) getBestLayout(targetSize float64, columns bool) [][]*d2gr
if dist < bestDist {
bestLayout = layout
bestDist = dist
+ fastIsBest = false
+ } else if fastIsBest && dist == bestDist {
+ // prefer ordered search solution to fast layout solution
+ bestLayout = layout
+ fastIsBest = false
}
count++
// with few objects we can try all options to get best result but this won't scale, so only try up to 100k options
- return count >= attemptLimit
+ return count >= ATTEMPT_LIMIT || skipCount >= SKIP_LIMIT
}
- // try at least 3 different okThresholds
- for i := 0; i < 3 || bestLayout == nil; i++ {
+ // try number of different okThresholds depending on std deviation of sizes
+ thresholdAttempts := int(math.Ceil(sd))
+ if thresholdAttempts < MIN_THRESHOLD_ATTEMPTS {
+ thresholdAttempts = MIN_THRESHOLD_ATTEMPTS
+ } else if thresholdAttempts > MAX_THRESHOLD_ATTEMPTS {
+ thresholdAttempts = MAX_THRESHOLD_ATTEMPTS
+ }
+ for i := 0; i < thresholdAttempts || bestLayout == nil; i++ {
+ count = 0.
+ skipCount = 0.
iterDivisions(gd.objects, nCuts, tryDivision, rowOk)
- okThreshold += thresholdStep
+ okThreshold += THRESHOLD_STEP_SIZE
if debug {
- fmt.Printf("increasing ok threshold to %v\n", okThreshold)
+ fmt.Printf("count %d, skip count %d, bestDist %v increasing ok threshold to %v\n", count, skipCount, bestDist, okThreshold)
}
startingCache = make(map[int]bool)
- count = 0.
- }
- if debug {
- fmt.Printf("final count %d, skip count %d\n", count, skipCount)
+ if skipCount == 0 {
+ // threshold isn't skipping anything so increasing it won't help
+ break
+ }
+ // okThreshold isn't high enough yet, we skipped every option so don't count it
+ if count == 0 && thresholdAttempts < MAX_THRESHOLD_ATTEMPTS {
+ thresholdAttempts++
+ }
+ }
+
+ if debug {
+ fmt.Printf("best layout: %v\n", layoutString(bestLayout, sizes))
+ }
+ return bestLayout
+}
+
+func sum(values []float64) float64 {
+ s := 0.
+ for _, v := range values {
+ s += v
+ }
+ return s
+}
+
+func avg(values []float64) float64 {
+ return sum(values) / float64(len(values))
+}
+
+func variance(values []float64) float64 {
+ mean := avg(values)
+ total := 0.
+ for _, value := range values {
+ dev := mean - value
+ total += dev * dev
+ }
+ return total / float64(len(values))
+}
+
+func stddev(values []float64) float64 {
+ return math.Sqrt(variance(values))
+}
+
+func (gd *gridDiagram) fastLayout(targetSize float64, nCuts int, columns bool) (layout [][]*d2graph.Object) {
+ var gap float64
+ if columns {
+ gap = float64(gd.verticalGap)
+ } else {
+ gap = float64(gd.horizontalGap)
}
- // try fast layout algorithm, see if it is better than first 1mil attempts
debt := 0.
fastDivision := make([]int, 0, nCuts)
rowSize := 0.
for i := 0; i < len(gd.objects); i++ {
o := gd.objects[i]
- size := getSize(o)
+ var size float64
+ if columns {
+ size = o.Height
+ } else {
+ size = o.Width
+ }
if rowSize == 0 {
if size > targetSize-debt {
fastDivision = append(fastDivision, i-1)
@@ -588,14 +807,23 @@ func (gd *gridDiagram) getBestLayout(targetSize float64, columns bool) [][]*d2gr
}
}
if len(fastDivision) == nCuts {
- layout := genLayout(gd.objects, fastDivision)
- dist := getDistToTarget(layout, targetSize, float64(gd.horizontalGap), float64(gd.verticalGap), columns)
- if dist < bestDist {
- bestLayout = layout
- bestDist = dist
- }
+ layout = genLayout(gd.objects, fastDivision)
}
- return bestLayout
+
+ return layout
+}
+
+func layoutString(layout [][]*d2graph.Object, sizes []float64) string {
+ buf := &bytes.Buffer{}
+ i := 0
+ fmt.Fprintf(buf, "[\n")
+ for _, r := range layout {
+ vals := sizes[i : i+len(r)]
+ fmt.Fprintf(buf, "%v:\t%v\n", sum(vals), vals)
+ i += len(r)
+ }
+ fmt.Fprintf(buf, "]\n")
+ return buf.String()
}
// process current division, return true to stop iterating
@@ -704,25 +932,42 @@ func cleanup(graph *d2graph.Graph, gridDiagrams map[string]*gridDiagram, objects
})
}()
+ var restore func(obj *d2graph.Object)
+ restore = func(obj *d2graph.Object) {
+ gd, exists := gridDiagrams[obj.AbsID()]
+ if !exists {
+ return
+ }
+ obj.LabelPosition = go2.Pointer(string(label.InsideTopCenter))
+
+ horizontalPadding, verticalPadding := CONTAINER_PADDING, CONTAINER_PADDING
+ if obj.GridGap != nil || obj.HorizontalGap != nil {
+ horizontalPadding = gd.horizontalGap
+ }
+ if obj.GridGap != nil || obj.VerticalGap != nil {
+ verticalPadding = gd.verticalGap
+ }
+
+ // shift the grid from (0, 0)
+ gd.shift(
+ obj.TopLeft.X+float64(horizontalPadding),
+ obj.TopLeft.Y+float64(verticalPadding),
+ )
+ gd.cleanup(obj, graph)
+
+ for _, child := range obj.ChildrenArray {
+ restore(child)
+ }
+ }
+
if graph.Root.IsGridDiagram() {
gd, exists := gridDiagrams[graph.Root.AbsID()]
if exists {
gd.cleanup(graph.Root, graph)
- return
}
}
for _, obj := range graph.Objects {
- gd, exists := gridDiagrams[obj.AbsID()]
- if !exists {
- continue
- }
- obj.LabelPosition = go2.Pointer(string(label.InsideTopCenter))
- // shift the grid from (0, 0)
- gd.shift(
- obj.TopLeft.X+CONTAINER_PADDING,
- obj.TopLeft.Y+CONTAINER_PADDING,
- )
- gd.cleanup(obj, graph)
+ restore(obj)
}
}
diff --git a/d2layouts/d2near/layout.go b/d2layouts/d2near/layout.go
index 342f75eac..614c13652 100644
--- a/d2layouts/d2near/layout.go
+++ b/d2layouts/d2near/layout.go
@@ -148,62 +148,14 @@ func WithoutConstantNears(ctx context.Context, g *d2graph.Graph) (constantNearGr
}
_, isConst := d2graph.NearConstants[d2graph.Key(obj.NearKey)[0]]
if isConst {
- descendantObjects, edges := pluckObjAndEdges(g, obj)
-
- tempGraph := d2graph.NewGraph()
- tempGraph.Root.ChildrenArray = []*d2graph.Object{obj}
- tempGraph.Root.Children[strings.ToLower(obj.ID)] = obj
-
- for _, descendantObj := range descendantObjects {
- descendantObj.Graph = tempGraph
- }
- tempGraph.Objects = descendantObjects
- tempGraph.Edges = edges
-
+ tempGraph := g.ExtractAsNestedGraph(obj)
constantNearGraphs = append(constantNearGraphs, tempGraph)
-
i--
- delete(obj.Parent.Children, strings.ToLower(obj.ID))
- for i := 0; i < len(obj.Parent.ChildrenArray); i++ {
- if obj.Parent.ChildrenArray[i] == obj {
- obj.Parent.ChildrenArray = append(obj.Parent.ChildrenArray[:i], obj.Parent.ChildrenArray[i+1:]...)
- break
- }
- }
-
- obj.Parent = tempGraph.Root
}
}
return constantNearGraphs
}
-func pluckObjAndEdges(g *d2graph.Graph, obj *d2graph.Object) (descendantsObjects []*d2graph.Object, edges []*d2graph.Edge) {
- for i := 0; i < len(g.Edges); i++ {
- edge := g.Edges[i]
- if edge.Src == obj || edge.Dst == obj {
- edges = append(edges, edge)
- g.Edges = append(g.Edges[:i], g.Edges[i+1:]...)
- i--
- }
- }
-
- for i := 0; i < len(g.Objects); i++ {
- temp := g.Objects[i]
- if temp.AbsID() == obj.AbsID() {
- descendantsObjects = append(descendantsObjects, obj)
- g.Objects = append(g.Objects[:i], g.Objects[i+1:]...)
- for _, child := range obj.ChildrenArray {
- subObjects, subEdges := pluckObjAndEdges(g, child)
- descendantsObjects = append(descendantsObjects, subObjects...)
- edges = append(edges, subEdges...)
- }
- break
- }
- }
-
- return descendantsObjects, edges
-}
-
// boundingBox gets the center of the graph as defined by shapes
// The bounds taking into consideration only shapes gives more of a feeling of true center
// It differs from d2target.BoundingBox which needs to include every visible thing
diff --git a/d2oracle/edit.go b/d2oracle/edit.go
index bd0f2b48a..566a0a573 100644
--- a/d2oracle/edit.go
+++ b/d2oracle/edit.go
@@ -68,6 +68,172 @@ func Set(g *d2graph.Graph, key string, tag, value *string) (_ *d2graph.Graph, er
return recompile(g)
}
+func ReconnectEdge(g *d2graph.Graph, edgeKey string, srcKey, dstKey *string) (_ *d2graph.Graph, err error) {
+ mk, err := d2parser.ParseMapKey(edgeKey)
+ if err != nil {
+ return nil, err
+ }
+
+ if len(mk.Edges) == 0 {
+ return nil, errors.New("edgeKey must be an edge")
+ }
+
+ if mk.EdgeIndex == nil {
+ return nil, errors.New("edgeKey must refer to an existing edge")
+ }
+
+ edgeTrimCommon(mk)
+ obj := g.Root
+ if mk.Key != nil {
+ var ok bool
+ obj, ok = g.Root.HasChild(d2graph.Key(mk.Key))
+ if !ok {
+ return nil, errors.New("edge not found")
+ }
+ }
+
+ edge, ok := obj.HasEdge(mk)
+ if !ok {
+ return nil, errors.New("edge not found")
+ }
+
+ if srcKey != nil {
+ if edge.Src.AbsID() == *srcKey {
+ srcKey = nil
+ }
+ }
+
+ if dstKey != nil {
+ if edge.Dst.AbsID() == *dstKey {
+ dstKey = nil
+ }
+ }
+
+ if srcKey == nil && dstKey == nil {
+ return g, nil
+ }
+
+ var src *d2graph.Object
+ var dst *d2graph.Object
+ if srcKey != nil {
+ srcmk, err := d2parser.ParseMapKey(*srcKey)
+ if err != nil {
+ return nil, err
+ }
+ src, ok = g.Root.HasChild(d2graph.Key(srcmk.Key))
+ if !ok {
+ return nil, errors.New("newSrc not found")
+ }
+ }
+ if dstKey != nil {
+ dstmk, err := d2parser.ParseMapKey(*dstKey)
+ if err != nil {
+ return nil, err
+ }
+ dst, ok = g.Root.HasChild(d2graph.Key(dstmk.Key))
+ if !ok {
+ return nil, errors.New("newDst not found")
+ }
+ }
+
+ ref := edge.References[0]
+
+ // for loops where only one end is changing, node is always ensured
+ if edge.Src != edge.Dst && (srcKey == nil || dstKey == nil) {
+ var refEdges []*d2ast.Edge
+ for _, ref := range edge.References {
+ refEdges = append(refEdges, ref.Edge)
+ }
+
+ if srcKey != nil {
+ ensureNode(g, refEdges, ref.ScopeObj, ref.Scope, ref.MapKey, ref.MapKey.Edges[ref.MapKeyEdgeIndex].Src, true)
+ }
+ if dstKey != nil {
+ ensureNode(g, refEdges, ref.ScopeObj, ref.Scope, ref.MapKey, ref.MapKey.Edges[ref.MapKeyEdgeIndex].Dst, false)
+ }
+ }
+
+ for i := range edge.References {
+ ref := edge.References[i]
+ // it's a chain
+ if len(ref.MapKey.Edges) > 1 && ref.MapKey.EdgeIndex == nil {
+ splitChain := true
+ // Changing the start of a chain is okay
+ if ref.MapKeyEdgeIndex == 0 && dstKey == nil {
+ splitChain = false
+ }
+ // Changing the end of a chain is okay
+ if ref.MapKeyEdgeIndex == len(ref.MapKey.Edges)-1 && srcKey == nil {
+ splitChain = false
+ }
+ if splitChain {
+ tmp := *ref.MapKey
+ mk2 := &tmp
+ mk2.Edges = []*d2ast.Edge{ref.MapKey.Edges[ref.MapKeyEdgeIndex]}
+ ref.Scope.InsertAfter(ref.MapKey, mk2)
+
+ if ref.MapKeyEdgeIndex < len(ref.MapKey.Edges)-1 {
+ tmp := *ref.MapKey
+ mk2 := &tmp
+ mk2.Edges = ref.MapKey.Edges[ref.MapKeyEdgeIndex+1:]
+ ref.Scope.InsertAfter(ref.MapKey, mk2)
+ }
+ ref.MapKey.Edges = ref.MapKey.Edges[:ref.MapKeyEdgeIndex]
+ }
+ }
+
+ if src != nil {
+ srcmk, _ := d2parser.ParseMapKey(*srcKey)
+ ref.Edge.Src = srcmk.Key
+ newPath, err := pathFromScopeObj(g, srcmk, ref.ScopeObj)
+ if err != nil {
+ return nil, err
+ }
+ ref.Edge.Src.Path = newPath
+ }
+ if dst != nil {
+ dstmk, _ := d2parser.ParseMapKey(*dstKey)
+ ref.Edge.Dst = dstmk.Key
+ newPath, err := pathFromScopeObj(g, dstmk, ref.ScopeObj)
+ if err != nil {
+ return nil, err
+ }
+ ref.Edge.Dst.Path = newPath
+ }
+ }
+
+ return recompile(g)
+}
+
+func pathFromScopeKey(g *d2graph.Graph, key *d2ast.Key, scopeak []string) ([]*d2ast.StringBox, error) {
+ ak2 := d2graph.Key(key.Key)
+
+ commonPath := getCommonPath(scopeak, ak2)
+
+ var newPath []*d2ast.StringBox
+ // Move out to most common scope
+ for i := len(commonPath); i < len(scopeak); i++ {
+ newPath = append(newPath, d2ast.MakeValueBox(d2ast.RawString("_", true)).StringBox())
+ }
+ // From most common scope, target the toKey
+ newPath = append(newPath, key.Key.Path[len(commonPath):]...)
+
+ return newPath, nil
+}
+
+func pathFromScopeObj(g *d2graph.Graph, key *d2ast.Key, fromScope *d2graph.Object) ([]*d2ast.StringBox, error) {
+ // We don't want this to be underscore-resolved scope. We want to ignore underscores
+ var scopeak []string
+ if fromScope != g.Root {
+ scopek, err := d2parser.ParseKey(fromScope.AbsID())
+ if err != nil {
+ return nil, err
+ }
+ scopeak = d2graph.Key(scopek)
+ }
+ return pathFromScopeKey(g, key, scopeak)
+}
+
func recompile(g *d2graph.Graph) (*d2graph.Graph, error) {
s := d2format.Format(g.AST)
g, err := d2compiler.Compile(g.AST.Range.Path, strings.NewReader(s), nil)
@@ -606,7 +772,7 @@ func Delete(g *d2graph.Graph, key string) (_ *d2graph.Graph, err error) {
return nil, err
}
- if err := updateNear(prevG, g, &key, nil); err != nil {
+ if err := updateNear(prevG, g, &key, nil, false); err != nil {
return nil, err
}
@@ -753,7 +919,27 @@ func renameConflictsToParent(g *d2graph.Graph, key *d2ast.KeyPath) (*d2graph.Gra
hoistedAbsKey.Path = append(hoistedAbsKey.Path, ref.Key.Path[:ref.KeyPathIndex]...)
hoistedAbsKey.Path = append(hoistedAbsKey.Path, absKey.Path[len(absKey.Path)-1])
- uniqueKeyStr, _, err := generateUniqueKey(g, strings.Join(d2graph.Key(hoistedAbsKey), "."), ignored, newIDs)
+ // Can't generate a key that'd conflict with sibling
+ var siblingHoistedIDs []string
+ for _, otherAbsKey := range absKeys {
+ if absKey == otherAbsKey {
+ continue
+ }
+ ida := d2graph.Key(otherAbsKey)
+ absKeyStr := strings.Join(ida, ".")
+ if _, ok := dedupedRenames[absKeyStr]; ok {
+ continue
+ }
+ hoistedAbsKey, err := d2parser.ParseKey(ref.ScopeObj.AbsID())
+ if err != nil {
+ hoistedAbsKey = &d2ast.KeyPath{}
+ }
+ hoistedAbsKey.Path = append(hoistedAbsKey.Path, ref.Key.Path[:ref.KeyPathIndex]...)
+ hoistedAbsKey.Path = append(hoistedAbsKey.Path, otherAbsKey.Path[len(otherAbsKey.Path)-1])
+ siblingHoistedIDs = append(siblingHoistedIDs, strings.Join(d2graph.Key(hoistedAbsKey), "."))
+ }
+
+ uniqueKeyStr, _, err := generateUniqueKey(g, strings.Join(d2graph.Key(hoistedAbsKey), "."), ignored, append(newIDs, siblingHoistedIDs...))
if err != nil {
return nil, err
}
@@ -789,7 +975,7 @@ func renameConflictsToParent(g *d2graph.Graph, key *d2ast.KeyPath) (*d2graph.Gra
}
for _, k := range renameOrder {
var err error
- g, err = move(g, k, renames[k])
+ g, err = move(g, k, renames[k], false)
if err != nil {
return nil, err
}
@@ -1123,12 +1309,12 @@ func ensureNode(g *d2graph.Graph, excludedEdges []*d2ast.Edge, scopeObj *d2graph
}
}
-func Rename(g *d2graph.Graph, key, newName string) (_ *d2graph.Graph, err error) {
+func Rename(g *d2graph.Graph, key, newName string) (_ *d2graph.Graph, newKey string, err error) {
defer xdefer.Errorf(&err, "failed to rename %#v to %#v", key, newName)
mk, err := d2parser.ParseMapKey(key)
if err != nil {
- return nil, err
+ return nil, "", err
}
if len(mk.Edges) > 0 && mk.EdgeKey == nil {
@@ -1136,7 +1322,7 @@ func Rename(g *d2graph.Graph, key, newName string) (_ *d2graph.Graph, err error)
// Maybe we remove Rename and just have Move.
mk2, err := d2parser.ParseMapKey(newName)
if err != nil {
- return nil, err
+ return nil, "", err
}
mk2.Key = mk.Key
@@ -1144,13 +1330,25 @@ func Rename(g *d2graph.Graph, key, newName string) (_ *d2graph.Graph, err error)
} else {
_, ok := d2graph.ReservedKeywords[newName]
if ok {
- return nil, fmt.Errorf("cannot rename to reserved keyword: %#v", newName)
+ return nil, "", fmt.Errorf("cannot rename to reserved keyword: %#v", newName)
+ }
+ if mk.Key != nil {
+ obj, ok := g.Root.HasChild(d2graph.Key(mk.Key))
+ if !ok {
+ return nil, "", fmt.Errorf("key does not exist")
+ }
+ // If attempt to name something "x", but "x" already exists, rename it "x 2" instead
+ generatedName, _, err := generateUniqueKey(g, newName, obj, nil)
+ if err == nil {
+ newName = generatedName
+ }
}
// TODO: Handle mk.EdgeKey
mk.Key.Path[len(mk.Key.Path)-1] = d2ast.MakeValueBox(d2ast.RawString(newName, true)).StringBox()
}
- return move(g, key, d2format.Format(mk))
+ g, err = move(g, key, d2format.Format(mk), false)
+ return g, newName, err
}
func trimReservedSuffix(path []*d2ast.StringBox) []*d2ast.StringBox {
@@ -1163,12 +1361,12 @@ func trimReservedSuffix(path []*d2ast.StringBox) []*d2ast.StringBox {
}
// Does not handle edge keys, on account of edge keys can only be reserved, e.g. (a->b).style.color: red
-func Move(g *d2graph.Graph, key, newKey string) (_ *d2graph.Graph, err error) {
+func Move(g *d2graph.Graph, key, newKey string, includeDescendants bool) (_ *d2graph.Graph, err error) {
defer xdefer.Errorf(&err, "failed to move: %#v to %#v", key, newKey)
- return move(g, key, newKey)
+ return move(g, key, newKey, includeDescendants)
}
-func move(g *d2graph.Graph, key, newKey string) (*d2graph.Graph, error) {
+func move(g *d2graph.Graph, key, newKey string, includeDescendants bool) (*d2graph.Graph, error) {
if key == newKey {
return g, nil
}
@@ -1225,7 +1423,7 @@ func move(g *d2graph.Graph, key, newKey string) (*d2graph.Graph, error) {
isCrossScope := strings.Join(ak[:len(ak)-1], ".") != strings.Join(ak2[:len(ak2)-1], ".")
- if isCrossScope {
+ if isCrossScope && !includeDescendants {
g, err = renameConflictsToParent(g, mk.Key)
if err != nil {
return nil, err
@@ -1361,7 +1559,14 @@ func move(g *d2graph.Graph, key, newKey string) (*d2graph.Graph, error) {
continue
}
+ firstNonUnderscoreIndex := 0
ida := d2graph.Key(ref.Key)
+ for i, id := range ida {
+ if id != "_" {
+ firstNonUnderscoreIndex = i
+ break
+ }
+ }
resolvedObj, resolvedIDA, err := d2graph.ResolveUnderscoreKey(ida, ref.ScopeObj)
if err != nil {
return nil, err
@@ -1369,6 +1574,8 @@ func move(g *d2graph.Graph, key, newKey string) (*d2graph.Graph, error) {
if resolvedObj != obj {
ida = resolvedIDA
}
+ // e.g. "a.b.shape: circle"
+ _, endsWithReserved := d2graph.ReservedKeywords[ida[len(ida)-1]]
ida = go2.Filter(ida, func(x string) bool {
_, ok := d2graph.ReservedKeywords[x]
return !ok
@@ -1384,14 +1591,16 @@ func move(g *d2graph.Graph, key, newKey string) (*d2graph.Graph, error) {
// 4. Slice.
// -- The key is moving from its current scope out to a less nested scope
if isCrossScope {
- if len(ida) == 1 {
+ if (!includeDescendants && len(ida) == 1) || (includeDescendants && ref.KeyPathIndex == firstNonUnderscoreIndex) {
// 1. Transplant
absKey, err := d2parser.ParseKey(ref.ScopeObj.AbsID())
if err != nil {
absKey = &d2ast.KeyPath{}
}
absKey.Path = append(absKey.Path, ref.Key.Path...)
- hoistRefChildren(g, absKey, ref)
+ if !includeDescendants {
+ hoistRefChildren(g, absKey, ref)
+ }
deleteFromMap(ref.Scope, ref.MapKey)
detachedMK := &d2ast.Key{Primary: ref.MapKey.Primary, Key: cloneKey(ref.MapKey.Key)}
detachedMK.Key.Path = go2.Filter(detachedMK.Key.Path, func(x *d2ast.StringBox) bool {
@@ -1399,39 +1608,103 @@ func move(g *d2graph.Graph, key, newKey string) (*d2graph.Graph, error) {
})
detachedMK.Value = ref.MapKey.Value
if ref.MapKey != nil && ref.MapKey.Value.Map != nil {
- detachedMK.Value.Map = &d2ast.Map{
- Range: ref.MapKey.Value.Map.Range,
- }
- for _, n := range ref.MapKey.Value.Map.Nodes {
- if n.MapKey == nil {
- continue
+ // Without including descendants, just copy over the reserved
+ if !includeDescendants {
+ detachedMK.Value.Map = &d2ast.Map{
+ Range: ref.MapKey.Value.Map.Range,
}
- if n.MapKey.Key != nil {
- _, ok := d2graph.ReservedKeywords[n.MapKey.Key.Path[0].Unbox().ScalarString()]
- if ok {
- detachedMK.Value.Map.Nodes = append(detachedMK.Value.Map.Nodes, n)
+ for _, n := range ref.MapKey.Value.Map.Nodes {
+ if n.MapKey == nil {
+ continue
+ }
+ if n.MapKey.Key != nil {
+ _, ok := d2graph.ReservedKeywords[n.MapKey.Key.Path[0].Unbox().ScalarString()]
+ if ok {
+ detachedMK.Value.Map.Nodes = append(detachedMK.Value.Map.Nodes, n)
+ }
+ }
+ }
+ if len(detachedMK.Value.Map.Nodes) == 0 {
+ detachedMK.Value.Map = nil
+ }
+ } else {
+ // Usually copy everything as is when including descendants
+ // The exception is underscored keys, which need to be updated
+ for _, n := range ref.MapKey.Value.Map.Nodes {
+ if n.MapKey == nil {
+ continue
+ }
+ if n.MapKey.Key != nil {
+ if n.MapKey.Key.Path[0].Unbox().ScalarString() == "_" {
+ resolvedParent, resolvedScopeKey, err := d2graph.ResolveUnderscoreKey(d2graph.Key(n.MapKey.Key), obj)
+ if err != nil {
+ return nil, err
+ }
+
+ newPath, err := pathFromScopeKey(g, &d2ast.Key{Key: d2ast.MakeKeyPath(append(resolvedParent.AbsIDArray(), resolvedScopeKey...))}, ak2)
+ if err != nil {
+ return nil, err
+ }
+ n.MapKey.Key.Path = newPath
+ }
+ }
+ for _, e := range n.MapKey.Edges {
+ if e.Src.Path[0].Unbox().ScalarString() == "_" {
+ resolvedParent, resolvedScopeKey, err := d2graph.ResolveUnderscoreKey(d2graph.Key(e.Src), obj)
+ if err != nil {
+ return nil, err
+ }
+
+ newPath, err := pathFromScopeKey(g, &d2ast.Key{Key: d2ast.MakeKeyPath(append(resolvedParent.AbsIDArray(), resolvedScopeKey...))}, ak2)
+ if err != nil {
+ return nil, err
+ }
+ e.Src.Path = newPath
+ }
+ if e.Dst.Path[0].Unbox().ScalarString() == "_" {
+ resolvedParent, resolvedScopeKey, err := d2graph.ResolveUnderscoreKey(d2graph.Key(e.Dst), obj)
+ if err != nil {
+ return nil, err
+ }
+
+ newPath, err := pathFromScopeKey(g, &d2ast.Key{Key: d2ast.MakeKeyPath(append(resolvedParent.AbsIDArray(), resolvedScopeKey...))}, ak2)
+ if err != nil {
+ return nil, err
+ }
+ e.Dst.Path = newPath
+ }
}
}
}
- if len(detachedMK.Value.Map.Nodes) == 0 {
- detachedMK.Value.Map = nil
- }
}
-
appendUniqueMapKey(toScope, detachedMK)
- } else if len(ida) > 1 && (!isExplicit || go2.Contains(mostNestedRefs, ref)) {
+ } else if len(ida) > 1 && (endsWithReserved || !isExplicit || go2.Contains(mostNestedRefs, ref)) {
// 2. Split
detachedMK := &d2ast.Key{Key: cloneKey(ref.MapKey.Key)}
- detachedMK.Key.Path = []*d2ast.StringBox{ref.Key.Path[ref.KeyPathIndex]}
- if ref.KeyPathIndex == len(ref.Key.Path)-1 {
+ if includeDescendants {
+ detachedMK.Key.Path = append([]*d2ast.StringBox{}, ref.Key.Path[ref.KeyPathIndex:]...)
+ } else {
+ detachedMK.Key.Path = []*d2ast.StringBox{ref.Key.Path[ref.KeyPathIndex]}
+ }
+ if includeDescendants {
+ detachedMK.Value = ref.MapKey.Value
+ ref.MapKey.Value = d2ast.ValueBox{}
+ } else if ref.KeyPathIndex == len(filterReservedPath(ref.Key.Path))-1 {
withReserved, withoutReserved := filterReserved(ref.MapKey.Value)
detachedMK.Value = withReserved
ref.MapKey.Value = withoutReserved
+ detachedMK.Key.Path = append([]*d2ast.StringBox{}, ref.Key.Path[ref.KeyPathIndex:]...)
+ ref.Key.Path = ref.Key.Path[:ref.KeyPathIndex+1]
+ }
+ if includeDescendants {
+ ref.Key.Path = ref.Key.Path[:ref.KeyPathIndex]
+ } else {
+ ref.Key.Path = append(ref.Key.Path[:ref.KeyPathIndex], ref.Key.Path[ref.KeyPathIndex+1:]...)
}
- ref.Key.Path = append(ref.Key.Path[:ref.KeyPathIndex], ref.Key.Path[ref.KeyPathIndex+1:]...)
appendUniqueMapKey(toScope, detachedMK)
} else if len(getCommonPath(ak, ak2)) > 0 {
// 3. Extend
+ // This case does not make sense for includeDescendants
newKeyPath := ref.Key.Path[:ref.KeyPathIndex]
newKeyPath = append(newKeyPath, mk2.Key.Path[len(getCommonPath(ak, ak2)):]...)
ref.Key.Path = append(newKeyPath, ref.Key.Path[ref.KeyPathIndex+1:]...)
@@ -1476,48 +1749,76 @@ func move(g *d2graph.Graph, key, newKey string) (*d2graph.Graph, error) {
continue
}
- // We don't want this to be underscore-resolved scope. We want to ignore underscores
- var scopeak []string
- if ref.ScopeObj != g.Root {
- scopek, err := d2parser.ParseKey(ref.ScopeObj.AbsID())
- if err != nil {
- return nil, err
+ firstNonUnderscoreIndex := 0
+ ida := d2graph.Key(ref.Key)
+ for i, id := range ida {
+ if id != "_" {
+ firstNonUnderscoreIndex = i
+ break
}
- scopeak = d2graph.Key(scopek)
}
- commonPath := getCommonPath(scopeak, ak2)
- // When moving a node out of an edge, e.g. the `b` out of `a.b.c -> ...`,
- // The edge needs to continue targeting the same thing (c)
if ref.KeyPathIndex != len(ref.Key.Path)-1 {
+ // When moving a node out of an edge, e.g. the `b` out of `a.b.c -> ...`,
+ // The edge needs to continue targeting the same thing (c)
// Split
detachedMK := &d2ast.Key{
Key: cloneKey(ref.Key),
}
- detachedMK.Key.Path = []*d2ast.StringBox{ref.Key.Path[ref.KeyPathIndex]}
- appendUniqueMapKey(toScope, detachedMK)
+ oldPath, err := pathFromScopeObj(g, mk, ref.ScopeObj)
+ if err != nil {
+ return nil, err
+ }
+ newPath, err := pathFromScopeObj(g, mk2, ref.ScopeObj)
+ if err != nil {
+ return nil, err
+ }
+ if includeDescendants {
+ // When including descendants, the only thing that gets dropped, if any, is the uncommon leading path of new key and key
+ // E.g. when moving `a.b` to `x.b` with edge ref key of `a.b.c`, then changing it to `x.b.c` will drop `a`
+ diff := len(oldPath) - len(newPath)
+ // Only need to check uncommon path if the lengths are the same
+ if diff == 0 {
+ diff = len(getUncommonPath(d2graph.Key(&d2ast.KeyPath{Path: oldPath}), d2graph.Key(&d2ast.KeyPath{Path: newPath})))
+ }
+ // If the old key is longer than the new key, we already know all the diff would be dropped
+ if diff > 0 && ref.KeyPathIndex != firstNonUnderscoreIndex {
+ detachedMK.Key.Path = append([]*d2ast.StringBox{}, ref.Key.Path[ref.KeyPathIndex-diff:ref.KeyPathIndex]...)
+ appendUniqueMapKey(ref.Scope, detachedMK)
+ }
+ } else {
+ detachedMK.Key.Path = []*d2ast.StringBox{ref.Key.Path[ref.KeyPathIndex]}
+ appendUniqueMapKey(toScope, detachedMK)
+ }
- ref.Key.Path = append(ref.Key.Path[:ref.KeyPathIndex], ref.Key.Path[ref.KeyPathIndex+1:]...)
+ if includeDescendants {
+ ref.Key.Path = append(ref.Key.Path[:ref.KeyPathIndex-len(oldPath)+1], append(newPath, ref.Key.Path[ref.KeyPathIndex+1:]...)...)
+ } else {
+ ref.Key.Path = append(ref.Key.Path[:ref.KeyPathIndex], ref.Key.Path[ref.KeyPathIndex+1:]...)
+ }
} else {
// When moving a node connected to an edge, we have to ensure parents continue to exist
// e.g. the `c` out of `a.b.c -> ...`
// `a.b` needs to exist
+ newPath, err := pathFromScopeObj(g, mk2, ref.ScopeObj)
+ if err != nil {
+ return nil, err
+ }
if len(go2.Filter(ref.Key.Path, func(x *d2ast.StringBox) bool { return x.Unbox().ScalarString() != "_" })) > 1 {
detachedK := cloneKey(ref.Key)
detachedK.Path = detachedK.Path[:len(detachedK.Path)-1]
ensureNode(g, refEdges, ref.ScopeObj, ref.Scope, ref.MapKey, detachedK, false)
}
- // Move out to most common scope
- ref.Key.Path = nil
- for i := len(commonPath); i < len(scopeak); i++ {
- ref.Key.Path = append(ref.Key.Path, d2ast.MakeValueBox(d2ast.RawString("_", true)).StringBox())
+
+ if includeDescendants {
+ ref.Key.Path = append(newPath, ref.Key.Path[go2.Min(len(ref.Key.Path), ref.KeyPathIndex+len(newPath)):]...)
+ } else {
+ ref.Key.Path = newPath
}
- // From most common scope, target the toKey
- ref.Key.Path = append(ref.Key.Path, mk2.Key.Path[len(commonPath):]...)
}
}
- if err := updateNear(prevG, g, &key, &newKey); err != nil {
+ if err := updateNear(prevG, g, &key, &newKey, includeDescendants); err != nil {
return nil, err
}
@@ -1592,7 +1893,7 @@ func filterReserved(value d2ast.ValueBox) (with, without d2ast.ValueBox) {
// updateNear updates all the Near fields
// prevG is the graph before the update (i.e. deletion, rename, move)
-func updateNear(prevG, g *d2graph.Graph, from, to *string) error {
+func updateNear(prevG, g *d2graph.Graph, from, to *string, includeDescendants bool) error {
mk, _ := d2parser.ParseMapKey(*from)
if len(mk.Edges) > 0 {
return nil
@@ -1603,6 +1904,13 @@ func updateNear(prevG, g *d2graph.Graph, from, to *string) error {
if len(mk.Key.Path) == 0 {
return nil
}
+
+ // TODO get rid of repetition
+
+ // Update all the `near` keys that are one level nested
+ // x: {
+ // near: z
+ // }
for _, obj := range g.Objects {
if obj.Map == nil {
continue
@@ -1637,7 +1945,7 @@ func updateNear(prevG, g *d2graph.Graph, from, to *string) error {
n.MapKey.Value = d2ast.MakeValueBox(d2ast.RawString(v, false))
}
} else {
- deltas, err := MoveIDDeltas(tmpG, *from, *to)
+ deltas, err := MoveIDDeltas(tmpG, *from, *to, includeDescendants)
if err != nil {
return err
}
@@ -1649,6 +1957,52 @@ func updateNear(prevG, g *d2graph.Graph, from, to *string) error {
}
}
}
+
+ // Update all the `near` keys that are flat (x.near: z)
+ for _, obj := range g.Objects {
+ for _, ref := range obj.References {
+ if ref.MapKey == nil {
+ continue
+ }
+ if ref.MapKey.Key == nil {
+ continue
+ }
+ if len(ref.MapKey.Key.Path) == 0 {
+ continue
+ }
+ if ref.MapKey.Key.Path[len(ref.MapKey.Key.Path)-1].Unbox().ScalarString() == "near" {
+ k := ref.MapKey.Value.ScalarBox().Unbox().ScalarString()
+ if strings.EqualFold(k, *from) && to == nil {
+ deleteFromMap(obj.Map, ref.MapKey)
+ } else {
+ valueMK, err := d2parser.ParseMapKey(k)
+ if err != nil {
+ return err
+ }
+ tmpG, _ := recompile(prevG)
+ appendMapKey(tmpG.AST, valueMK)
+ if to == nil {
+ deltas, err := DeleteIDDeltas(tmpG, *from)
+ if err != nil {
+ return err
+ }
+ if v, ok := deltas[k]; ok {
+ ref.MapKey.Value = d2ast.MakeValueBox(d2ast.RawString(v, false))
+ }
+ } else {
+ deltas, err := MoveIDDeltas(tmpG, *from, *to, includeDescendants)
+ if err != nil {
+ return err
+ }
+ if v, ok := deltas[k]; ok {
+ ref.MapKey.Value = d2ast.MakeValueBox(d2ast.RawString(v, false))
+ }
+ }
+ }
+ }
+ }
+ }
+
return nil
}
@@ -1691,55 +2045,133 @@ func ReparentIDDelta(g *d2graph.Graph, key, parentKey string) (string, error) {
return id, nil
}
-func ReconnectEdgeIDDelta(g *d2graph.Graph, edgeID, srcID, dstID string) (string, error) {
- mk, err := d2parser.ParseMapKey(edgeID)
+func ReconnectEdgeIDDeltas(g *d2graph.Graph, edgeKey string, srcKey, dstKey *string) (deltas map[string]string, err error) {
+ defer xdefer.Errorf(&err, "failed to get deltas for reconnect edge %#v", edgeKey)
+ deltas = make(map[string]string)
+ // Reconnection: nothing is created or destroyed, the edge just gets a new ID
+ // For deltas, it's indices that change:
+ // - old sibling edges may decrement index
+ // -- happens when the edge is not the last edge index
+ // - new sibling edges may increment index
+ // -- happens when the edge is not the last edge index
+ // - new edge of course always needs an entry
+
+ // The change happens at the first ref, since that is what changes index
+ mk, err := d2parser.ParseMapKey(edgeKey)
if err != nil {
- return "", err
+ return nil, err
}
+
+ if len(mk.Edges) == 0 {
+ return nil, errors.New("edgeKey must be an edge")
+ }
+
+ if mk.EdgeIndex == nil {
+ return nil, errors.New("edgeKey must refer to an existing edge")
+ }
+
edgeTrimCommon(mk)
obj := g.Root
if mk.Key != nil {
var ok bool
obj, ok = g.Root.HasChild(d2graph.Key(mk.Key))
if !ok {
- return "", errors.New("edge key not found")
+ return nil, errors.New("edge not found")
}
}
- e, ok := obj.HasEdge(mk)
+ edge, ok := obj.HasEdge(mk)
if !ok {
- return "", fmt.Errorf("edge %v not found", edgeID)
+ return nil, errors.New("edge not found")
}
- if e.Src.AbsID() == srcID && e.Dst.AbsID() == dstID {
- return edgeID, nil
+
+ if srcKey != nil {
+ if edge.Src.AbsID() == *srcKey {
+ srcKey = nil
+ }
}
- oldSrc := e.Src
- oldDst := e.Dst
- if e.Src.AbsID() != srcID {
- mk, err := d2parser.ParseMapKey(srcID)
+
+ if dstKey != nil {
+ if edge.Dst.AbsID() == *dstKey {
+ dstKey = nil
+ }
+ }
+
+ if srcKey == nil && dstKey == nil {
+ return nil, nil
+ }
+
+ newSrc := edge.Src
+ newDst := edge.Dst
+ var src *d2graph.Object
+ var dst *d2graph.Object
+ if srcKey != nil {
+ srcmk, err := d2parser.ParseMapKey(*srcKey)
if err != nil {
- return "", err
+ return nil, err
}
- src, ok := g.Root.HasChild(d2graph.Key(mk.Key))
+ src, ok = g.Root.HasChild(d2graph.Key(srcmk.Key))
if !ok {
- return "", fmt.Errorf("src %v not found", srcID)
+ return nil, errors.New("newSrc not found")
}
- e.Src = src
+ newSrc = src
}
- if e.Dst.AbsID() != dstID {
- mk, err := d2parser.ParseMapKey(dstID)
+ if dstKey != nil {
+ dstmk, err := d2parser.ParseMapKey(*dstKey)
if err != nil {
- return "", err
+ return nil, err
}
- dst, ok := g.Root.HasChild(d2graph.Key(mk.Key))
+ dst, ok = g.Root.HasChild(d2graph.Key(dstmk.Key))
if !ok {
- return "", fmt.Errorf("dst %v not found", dstID)
+ return nil, errors.New("newDst not found")
}
- e.Dst = dst
+ newDst = dst
}
- newID := fmt.Sprintf("%s %s %s", e.Src.AbsID(), e.ArrowString(), e.Dst.AbsID())
- e.Src = oldSrc
- e.Dst = oldDst
- return newID, nil
+
+ // The first ref is always the definition
+ firstRef := edge.References[0]
+ line := firstRef.MapKey.Range.Start.Line
+ newIndex := 0
+
+ // For the edge's own delta, it just needs to know how many edges came before it with the same src and dst
+ for _, otherEdge := range g.Edges {
+ if otherEdge.Src == newSrc && otherEdge.Dst == newDst {
+ firstRef := otherEdge.References[0]
+ if firstRef.MapKey.Range.Start.Line <= line {
+ newIndex++
+ }
+ }
+ if otherEdge.Src == edge.Src && otherEdge.Dst == edge.Dst && otherEdge.Index > edge.Index {
+ before := otherEdge.AbsID()
+ otherEdge.Index--
+ after := otherEdge.AbsID()
+ deltas[before] = after
+ otherEdge.Index++
+ }
+ }
+
+ for _, otherEdge := range g.Edges {
+ if otherEdge.Src == newSrc && otherEdge.Dst == newDst {
+ if otherEdge.Index >= newIndex {
+ before := otherEdge.AbsID()
+ otherEdge.Index++
+ after := otherEdge.AbsID()
+ deltas[before] = after
+ otherEdge.Index--
+ }
+ }
+ }
+
+ newEdge := &d2graph.Edge{
+ Src: newSrc,
+ Dst: newDst,
+ SrcArrow: edge.SrcArrow,
+ DstArrow: edge.DstArrow,
+ Index: newIndex,
+ }
+
+ deltas[edge.AbsID()] = newEdge.AbsID()
+
+ return deltas, nil
}
// generateUniqueKey generates a unique key by appending a number after `prefix` such that it doesn't conflict with any IDs in `g`
@@ -1848,6 +2280,16 @@ func getCommonPath(a, b []string) []string {
return out
}
+func getUncommonPath(a, b []string) []string {
+ var out []string
+ for i := 0; i < len(a) && i < len(b); i++ {
+ if a[i] != b[i] {
+ out = a[:i+1]
+ }
+ }
+ return out
+}
+
func edgeTrimCommon(mk *d2ast.Key) {
if len(mk.Edges) != 1 {
return
@@ -1866,7 +2308,7 @@ func edgeTrimCommon(mk *d2ast.Key) {
}
}
-func MoveIDDeltas(g *d2graph.Graph, key, newKey string) (deltas map[string]string, err error) {
+func MoveIDDeltas(g *d2graph.Graph, key, newKey string, includeDescendants bool) (deltas map[string]string, err error) {
defer xdefer.Errorf(&err, "failed to get deltas for move from %#v to %#v", key, newKey)
deltas = make(map[string]string)
@@ -1915,48 +2357,50 @@ func MoveIDDeltas(g *d2graph.Graph, key, newKey string) (deltas map[string]strin
}
}
- for _, ch := range obj.ChildrenArray {
- chMK, err := d2parser.ParseMapKey(ch.AbsID())
- if err != nil {
- return nil, err
- }
- ida := d2graph.Key(chMK.Key)
- if ida[len(ida)-1] == ida[len(ida)-2] {
- continue
- }
-
- hoistedAbsID := ch.ID
- if obj.Parent != g.Root {
- hoistedAbsID = obj.Parent.AbsID() + "." + ch.ID
- }
- hoistedMK, err := d2parser.ParseMapKey(hoistedAbsID)
- if err != nil {
- return nil, err
- }
-
- conflictsWithNewID := false
- for _, id := range newIDs {
- if id == d2format.Format(hoistedMK.Key) {
- conflictsWithNewID = true
- break
- }
- }
-
- if _, ok := g.Root.HasChild(d2graph.Key(hoistedMK.Key)); ok || conflictsWithNewID {
- newKey, _, err := generateUniqueKey(g, hoistedAbsID, ignored, newIDs)
+ if !includeDescendants {
+ for _, ch := range obj.ChildrenArray {
+ chMK, err := d2parser.ParseMapKey(ch.AbsID())
if err != nil {
return nil, err
}
- newMK, err := d2parser.ParseMapKey(newKey)
+ ida := d2graph.Key(chMK.Key)
+ if ida[len(ida)-1] == ida[len(ida)-2] {
+ continue
+ }
+
+ hoistedAbsID := ch.ID
+ if obj.Parent != g.Root {
+ hoistedAbsID = obj.Parent.AbsID() + "." + ch.ID
+ }
+ hoistedMK, err := d2parser.ParseMapKey(hoistedAbsID)
if err != nil {
return nil, err
}
- newAK := d2graph.Key(newMK.Key)
- conflictOldIDs[ch] = ch.ID
- conflictNewIDs[ch] = newAK[len(newAK)-1]
- newIDs = append(newIDs, d2format.Format(newMK.Key))
- } else {
- newIDs = append(newIDs, d2format.Format(hoistedMK.Key))
+
+ conflictsWithNewID := false
+ for _, id := range newIDs {
+ if id == d2format.Format(hoistedMK.Key) {
+ conflictsWithNewID = true
+ break
+ }
+ }
+
+ if _, ok := g.Root.HasChild(d2graph.Key(hoistedMK.Key)); ok || conflictsWithNewID {
+ newKey, _, err := generateUniqueKey(g, hoistedAbsID, ignored, newIDs)
+ if err != nil {
+ return nil, err
+ }
+ newMK, err := d2parser.ParseMapKey(newKey)
+ if err != nil {
+ return nil, err
+ }
+ newAK := d2graph.Key(newMK.Key)
+ conflictOldIDs[ch] = ch.ID
+ conflictNewIDs[ch] = newAK[len(newAK)-1]
+ newIDs = append(newIDs, d2format.Format(newMK.Key))
+ } else {
+ newIDs = append(newIDs, d2format.Format(hoistedMK.Key))
+ }
}
}
}
@@ -1998,7 +2442,7 @@ func MoveIDDeltas(g *d2graph.Graph, key, newKey string) (deltas map[string]strin
id := ak2[len(ak2)-1]
tmpRenames := func() func() {
- if isCrossScope {
+ if isCrossScope && !includeDescendants {
for _, ch := range obj.ChildrenArray {
ch.Parent = obj.Parent
}
@@ -2018,7 +2462,7 @@ func MoveIDDeltas(g *d2graph.Graph, key, newKey string) (deltas map[string]strin
obj.ID = beforeObjID
obj.Parent = prevParent
- if isCrossScope {
+ if isCrossScope && !includeDescendants {
for _, ch := range obj.ChildrenArray {
ch.Parent = obj
}
@@ -2291,7 +2735,7 @@ func RenameIDDeltas(g *d2graph.Graph, key, newName string) (deltas map[string]st
}
mk.Key.Path[len(mk.Key.Path)-1].Unbox().SetString(newName)
- uniqueKeyStr, _, err := generateUniqueKey(g, strings.Join(d2graph.Key(mk.Key), "."), nil, nil)
+ uniqueKeyStr, _, err := generateUniqueKey(g, strings.Join(d2graph.Key(mk.Key), "."), obj, nil)
if err != nil {
return nil, err
}
@@ -2305,19 +2749,23 @@ func RenameIDDeltas(g *d2graph.Graph, key, newName string) (deltas map[string]st
beforeObjID := obj.ID
appendNodeDelta := func(ch *d2graph.Object) {
- beforeID := ch.AbsID()
- obj.ID = newNameKey
- deltas[beforeID] = ch.AbsID()
- obj.ID = beforeObjID
+ if obj.ID != newNameKey {
+ beforeID := ch.AbsID()
+ obj.ID = newNameKey
+ deltas[beforeID] = ch.AbsID()
+ obj.ID = beforeObjID
+ }
}
appendEdgeDelta := func(ch *d2graph.Object) {
for _, e := range obj.Graph.Edges {
if e.Src == ch || e.Dst == ch {
- beforeID := e.AbsID()
- obj.ID = newNameKey
- deltas[beforeID] = e.AbsID()
- obj.ID = beforeObjID
+ if obj.ID != newNameKey {
+ beforeID := e.AbsID()
+ obj.ID = newNameKey
+ deltas[beforeID] = e.AbsID()
+ obj.ID = beforeObjID
+ }
}
}
}
@@ -2391,3 +2839,13 @@ func getMostNestedRefs(obj *d2graph.Object) []d2graph.Reference {
return out
}
+
+func filterReservedPath(path []*d2ast.StringBox) (filtered []*d2ast.StringBox) {
+ for _, box := range path {
+ if _, ok := d2graph.ReservedKeywords[strings.ToLower(box.Unbox().ScalarString())]; ok {
+ return
+ }
+ filtered = append(filtered, box)
+ }
+ return
+}
diff --git a/d2oracle/edit_test.go b/d2oracle/edit_test.go
index eaa7d451a..a48bcc0d1 100644
--- a/d2oracle/edit_test.go
+++ b/d2oracle/edit_test.go
@@ -1493,6 +1493,311 @@ six
}
}
+func TestReconnectEdge(t *testing.T) {
+ t.Parallel()
+
+ testCases := []struct {
+ name string
+ text string
+ edgeKey string
+ newSrc string
+ newDst string
+
+ expErr string
+ exp string
+ assertions func(t *testing.T, g *d2graph.Graph)
+ }{
+ {
+ name: "basic",
+ text: `a
+b
+c
+a -> b
+`,
+ edgeKey: `(a -> b)[0]`,
+ newDst: "c",
+ exp: `a
+b
+c
+a -> c
+`,
+ },
+ {
+ name: "src",
+ text: `a
+b
+c
+a -> b
+`,
+ edgeKey: `(a -> b)[0]`,
+ newSrc: "c",
+ exp: `a
+b
+c
+c -> b
+`,
+ },
+ {
+ name: "both",
+ text: `a
+b
+c
+a -> b
+`,
+ edgeKey: `(a -> b)[0]`,
+ newSrc: "b",
+ newDst: "a",
+ exp: `a
+b
+c
+b -> a
+`,
+ },
+ {
+ name: "contained",
+ text: `a.x -> a.y
+a.z`,
+ edgeKey: `a.(x -> y)[0]`,
+ newDst: "a.z",
+ exp: `a.x -> a.z
+a.y
+a.z
+`,
+ },
+ {
+ name: "scope_outer",
+ text: `a: {
+ x -> y
+}
+b`,
+ edgeKey: `(a.x -> a.y)[0]`,
+ newDst: "b",
+ exp: `a: {
+ x -> _.b
+ y
+}
+b
+`,
+ },
+ {
+ name: "scope_inner",
+ text: `a: {
+ x -> y
+ z: {
+ b
+ }
+}`,
+ edgeKey: `(a.x -> a.y)[0]`,
+ newDst: "a.z.b",
+ exp: `a: {
+ x -> z.b
+ y
+
+ z: {
+ b
+ }
+}
+`,
+ },
+ {
+ name: "loop",
+ text: `a -> a
+b`,
+ edgeKey: `(a -> a)[0]`,
+ newDst: "b",
+ exp: `a -> b
+b
+`,
+ },
+ {
+ name: "preserve_old_obj",
+ text: `a -> b
+(a -> b)[0].style.stroke: red
+c`,
+ edgeKey: `(a -> b)[0]`,
+ newSrc: "a",
+ newDst: "c",
+ exp: `a -> c
+b
+(a -> c)[0].style.stroke: red
+c
+`,
+ },
+ {
+ name: "middle_chain",
+ text: `a -> b -> c
+x`,
+ edgeKey: `(a -> b)[0]`,
+ newDst: "x",
+ exp: `b -> c
+a -> x
+x
+`,
+ },
+ {
+ name: "middle_chain_src",
+ text: `a -> b -> c
+x`,
+ edgeKey: `(b -> c)[0]`,
+ newSrc: "x",
+ exp: `a -> b
+x -> c
+x
+`,
+ },
+ {
+ name: "middle_chain_both",
+ text: `a -> b -> c -> d
+x`,
+ edgeKey: `(b -> c)[0]`,
+ newSrc: "x",
+ newDst: "x",
+ exp: `a -> b
+c -> d
+x -> x
+x
+`,
+ },
+ {
+ name: "middle_chain_first",
+ text: `a -> b -> c -> d
+x`,
+ edgeKey: `(a -> b)[0]`,
+ newSrc: "x",
+ exp: `a
+x -> b -> c -> d
+x
+`,
+ },
+ {
+ name: "middle_chain_last",
+ text: `a -> b -> c -> d
+x`,
+ edgeKey: `(c -> d)[0]`,
+ newDst: "x",
+ exp: `a -> b -> c -> x
+d
+x
+`,
+ },
+ // These _3 and _4 match the delta tests
+ {
+ name: "in_chain_3",
+
+ text: `a -> b -> a -> c
+`,
+ edgeKey: "(a -> b)[0]",
+ newDst: "c",
+
+ exp: `b -> a -> c
+a -> c
+`,
+ },
+ {
+ name: "in_chain_4",
+
+ text: `a -> c -> a -> c
+b
+`,
+ edgeKey: "(a -> c)[0]",
+ newDst: "b",
+
+ exp: `c -> a -> c
+a -> b
+b
+`,
+ },
+ {
+ name: "indexed_ref",
+ text: `a -> b
+x
+(a -> b)[0].style.stroke: red
+`,
+ edgeKey: `(a -> b)[0]`,
+ newDst: "x",
+ exp: `a -> x
+b
+x
+(a -> x)[0].style.stroke: red
+`,
+ },
+ {
+ name: "reverse",
+ text: `a -> b
+`,
+ edgeKey: `(a -> b)[0]`,
+ newSrc: "b",
+ newDst: "a",
+ exp: `b -> a
+`,
+ },
+ {
+ name: "second_index",
+ text: `a -> b: {
+ style.stroke: blue
+}
+a -> b: {
+ style.stroke: red
+}
+x
+`,
+ edgeKey: `(a -> b)[1]`,
+ newDst: "x",
+ exp: `a -> b: {
+ style.stroke: blue
+}
+a -> x: {
+ style.stroke: red
+}
+x
+`,
+ },
+ {
+ name: "nonexistant_edge",
+ text: `a -> b
+`,
+ edgeKey: `(b -> a)[0]`,
+ newDst: "a",
+ expErr: "edge not found",
+ },
+ {
+ name: "nonexistant_obj",
+ text: `a -> b
+`,
+ edgeKey: `(a -> b)[0]`,
+ newDst: "x",
+ expErr: "newDst not found",
+ },
+ }
+
+ for _, tc := range testCases {
+ tc := tc
+ t.Run(tc.name, func(t *testing.T) {
+ t.Parallel()
+
+ et := editTest{
+ text: tc.text,
+ testFunc: func(g *d2graph.Graph) (*d2graph.Graph, error) {
+ var newSrc *string
+ var newDst *string
+ if tc.newSrc != "" {
+ newSrc = &tc.newSrc
+ }
+ if tc.newDst != "" {
+ newDst = &tc.newDst
+ }
+ return d2oracle.ReconnectEdge(g, tc.edgeKey, newSrc, newDst)
+ },
+
+ exp: tc.exp,
+ expErr: tc.expErr,
+ assertions: tc.assertions,
+ }
+ et.run(t)
+ })
+ }
+}
+
func TestRename(t *testing.T) {
t.Parallel()
@@ -1535,6 +1840,19 @@ func TestRename(t *testing.T) {
newName: `Square`,
exp: `Square
+`,
+ },
+ {
+ name: "generated-conflict",
+
+ text: `Square
+Square 2
+`,
+ key: `Square 2`,
+ newName: `Square`,
+
+ exp: `Square
+Square 2
`,
},
{
@@ -1888,7 +2206,7 @@ more.(ok.q.z -> p.k): "furbling, v.:"
key: "1.2.3.4",
newName: "bic",
- expErr: `failed to rename "1.2.3.4" to "bic": key referenced by from does not exist`,
+ expErr: `failed to rename "1.2.3.4" to "bic": key does not exist`,
},
{
@@ -1910,7 +2228,18 @@ more.(ok.q.z -> p.k): "furbling, v.:"
et := editTest{
text: tc.text,
testFunc: func(g *d2graph.Graph) (*d2graph.Graph, error) {
- return d2oracle.Rename(g, tc.key, tc.newName)
+ objectsBefore := len(g.Objects)
+ var err error
+ g, _, err = d2oracle.Rename(g, tc.key, tc.newName)
+ if err == nil {
+ objectsAfter := len(g.Objects)
+ if objectsBefore != objectsAfter {
+ t.Log(d2format.Format(g.AST))
+ return nil, fmt.Errorf("rename cannot destroy or create objects: found %d objects before and %d objects after", objectsBefore, objectsAfter)
+ }
+ }
+
+ return g, err
},
exp: tc.exp,
@@ -1929,9 +2258,10 @@ func TestMove(t *testing.T) {
skip bool
name string
- text string
- key string
- newKey string
+ text string
+ key string
+ newKey string
+ includeDescendants bool
expErr string
exp string
@@ -2276,8 +2606,9 @@ a.b.icon: https://icons.terrastruct.com/essentials/142-target.svg
newKey: `b`,
exp: `a
-b.icon: https://icons.terrastruct.com/essentials/142-target.svg
+a
b
+b.icon: https://icons.terrastruct.com/essentials/142-target.svg
`,
},
{
@@ -2653,7 +2984,7 @@ y
newKey: `x.y`,
exp: `x: {
- near: x.y
+ near: y
y
}
`,
@@ -2683,6 +3014,22 @@ y
a: {
y
}
+`,
+ },
+ {
+ name: "flat_near",
+
+ text: `x.near: y
+a
+y
+`,
+ key: `y`,
+ newKey: `a.y`,
+
+ exp: `x.near: a.y
+a: {
+ y
+}
`,
},
{
@@ -2992,6 +3339,22 @@ c
exp: `a: {
_.c.b -> _.c
}
+`,
+ },
+ {
+ name: "underscore_edge_container_6",
+
+ text: `x: {
+ _.y.a -> _.y.b
+}
+`,
+ key: `y`,
+ newKey: `x.y`,
+ includeDescendants: true,
+
+ exp: `x: {
+ y.a -> y.b
+}
`,
},
{
@@ -3546,6 +3909,532 @@ Square: ""
Square 3: {
Square 2: ""
}
+`,
+ },
+ {
+ name: "include_descendants_flat_1",
+ text: `x.y
+z
+`,
+ key: `x`,
+ newKey: `z.x`,
+ includeDescendants: true,
+
+ exp: `z: {
+ x.y
+}
+`,
+ },
+ {
+ name: "include_descendants_flat_2",
+ text: `a.x.y
+a.z
+`,
+ key: `a.x`,
+ newKey: `a.z.x`,
+ includeDescendants: true,
+
+ exp: `a
+a.z: {
+ x.y
+}
+`,
+ },
+ {
+ name: "include_descendants_flat_3",
+ text: `a.x.y
+a.z
+`,
+ key: `a.x`,
+ newKey: `x`,
+ includeDescendants: true,
+
+ exp: `a
+a.z
+x.y
+`,
+ },
+ {
+ name: "include_descendants_flat_4",
+ text: `a.x.y
+a.z
+`,
+ key: `a.x.y`,
+ newKey: `y`,
+ includeDescendants: true,
+
+ exp: `a.x
+a.z
+y
+`,
+ },
+ {
+ name: "include_descendants_map_1",
+ text: `x: {
+ y
+}
+z
+`,
+ key: `x`,
+ newKey: `z.x`,
+ includeDescendants: true,
+
+ exp: `z: {
+ x: {
+ y
+ }
+}
+`,
+ },
+ {
+ name: "include_descendants_map_2",
+ text: `x: {
+ y: {
+ c
+ }
+ y.b
+}
+x.y.b
+z
+`,
+ key: `x.y`,
+ newKey: `a`,
+ includeDescendants: true,
+
+ exp: `x
+x
+z
+a: {
+ c
+}
+a.b
+`,
+ },
+ {
+ name: "include_descendants_grandchild",
+ text: `x: {
+ y.a
+ y: {
+ b
+ }
+}
+z
+`,
+ key: `x`,
+ newKey: `z.x`,
+ includeDescendants: true,
+
+ exp: `z: {
+ x: {
+ y.a
+ y: {
+ b
+ }
+ }
+}
+`,
+ },
+ {
+ name: "include_descendants_sql",
+ text: `x: {
+ shape: sql_table
+ a: b
+}
+z
+`,
+ key: `x`,
+ newKey: `z.x`,
+ includeDescendants: true,
+
+ exp: `z: {
+ x: {
+ shape: sql_table
+ a: b
+ }
+}
+`,
+ },
+ {
+ name: "include_descendants_edge_child",
+ text: `x: {
+ a -> b
+}
+z
+`,
+ key: `x`,
+ newKey: `z.x`,
+ includeDescendants: true,
+
+ exp: `z: {
+ x: {
+ a -> b
+ }
+}
+`,
+ },
+ {
+ name: "include_descendants_edge_ref_1",
+ text: `x
+z
+x.a -> x.b
+`,
+ key: `x`,
+ newKey: `z.x`,
+ includeDescendants: true,
+
+ exp: `z: {
+ x
+}
+z.x.a -> z.x.b
+`,
+ },
+ {
+ name: "include_descendants_edge_ref_2",
+ text: `x -> y.z
+`,
+ key: `y.z`,
+ newKey: `z`,
+ includeDescendants: true,
+
+ exp: `x -> z
+y
+`,
+ },
+ {
+ name: "include_descendants_edge_ref_3",
+ text: `x -> y.z.a
+`,
+ key: `y.z`,
+ newKey: `z`,
+ includeDescendants: true,
+
+ exp: `x -> z.a
+y
+`,
+ },
+ {
+ name: "include_descendants_edge_ref_4",
+ text: `x -> y.z.a
+b
+`,
+ key: `y.z`,
+ newKey: `b.z`,
+ includeDescendants: true,
+
+ exp: `x -> b.z.a
+b
+y
+`,
+ },
+ {
+ name: "include_descendants_edge_ref_5",
+ text: `foo: {
+ x -> y.z.a
+ b
+}
+`,
+ key: `foo.y.z`,
+ newKey: `foo.b.z`,
+ includeDescendants: true,
+
+ exp: `foo: {
+ x -> b.z.a
+ b
+ y
+}
+`,
+ },
+ {
+ name: "include_descendants_edge_ref_6",
+ text: `x -> y
+z
+`,
+ key: `y`,
+ newKey: `z.y`,
+ includeDescendants: true,
+
+ exp: `x -> z.y
+z
+`,
+ },
+ {
+ name: "include_descendants_edge_ref_7",
+ text: `d.t -> d.np.s
+`,
+ key: `d.np.s`,
+ newKey: `d.s`,
+ includeDescendants: true,
+
+ exp: `d.t -> d.s
+d.np
+`,
+ },
+ {
+ name: "include_descendants_nested_1",
+ text: `y.z
+b
+`,
+ key: `y.z`,
+ newKey: `b.z`,
+ includeDescendants: true,
+
+ exp: `y
+b: {
+ z
+}
+`,
+ },
+ {
+ name: "include_descendants_nested_2",
+ text: `y.z
+y.b
+`,
+ key: `y.z`,
+ newKey: `y.b.z`,
+ includeDescendants: true,
+
+ exp: `y
+y.b: {
+ z
+}
+`,
+ },
+ {
+ name: "include_descendants_underscore",
+ text: `github.code -> local.dev
+
+github: {
+ _.local.dev -> _.aws.workflows
+ _.aws: {
+ workflows
+ }
+}
+`,
+ key: `aws.workflows`,
+ newKey: `github.workflows`,
+ includeDescendants: true,
+
+ exp: `github.code -> local.dev
+
+github: {
+ _.local.dev -> workflows
+ _.aws
+ workflows
+}
+`,
+ },
+ {
+ name: "include_descendants_underscore_2",
+ text: `a: {
+ b: {
+ _.c
+ }
+}
+`,
+ key: `a.b`,
+ newKey: `b`,
+ includeDescendants: true,
+
+ exp: `a
+b: {
+ _.a.c
+}
+`,
+ },
+ {
+ name: "include_descendants_underscore_3",
+ text: `a: {
+ b: {
+ _.c -> d
+ _.c -> _.d
+ }
+}
+`,
+ key: `a.b`,
+ newKey: `b`,
+ includeDescendants: true,
+
+ exp: `a
+b: {
+ _.a.c -> d
+ _.a.c -> _.a.d
+}
+`,
+ },
+ {
+ name: "include_descendants_edge_ref_underscore",
+ text: `x
+z
+x.a -> x.b
+b: {
+ _.x.a -> _.x.b
+}
+`,
+ key: `x`,
+ newKey: `z.x`,
+ includeDescendants: true,
+
+ exp: `z: {
+ x
+}
+z.x.a -> z.x.b
+b: {
+ _.z.x.a -> _.z.x.b
+}
+`,
+ },
+ {
+ name: "include_descendants_near",
+ text: `x.y
+z
+a.near: x.y
+`,
+ key: `x`,
+ newKey: `z.x`,
+ includeDescendants: true,
+
+ exp: `z: {
+ x.y
+}
+a.near: z.x.y
+`,
+ },
+ {
+ name: "include_descendants_conflict",
+ text: `x.y
+z.x
+`,
+ key: `x`,
+ newKey: `z.x`,
+ includeDescendants: true,
+
+ exp: `z: {
+ x
+ x 2.y
+}
+`,
+ },
+ {
+ name: "include_descendants_non_conflict",
+ text: `x.y
+z.x
+y
+`,
+ key: `x`,
+ newKey: `z.x`,
+ includeDescendants: true,
+
+ exp: `z: {
+ x
+ x 2.y
+}
+y
+`,
+ },
+ {
+ name: "nested_reserved_2",
+ text: `A.B.C.shape: circle
+`,
+ key: `A.B.C`,
+ newKey: `C`,
+
+ exp: `A.B
+C.shape: circle
+`,
+ },
+ {
+ name: "nested_reserved_3",
+ text: `A.B.C.shape: circle
+A.B: {
+ C
+ D
+}
+`,
+ key: `A.B.C`,
+ newKey: `A.B.D.C`,
+
+ exp: `A.B
+A.B: {
+ D: {
+ C.shape: circle
+ C
+ }
+}
+`,
+ },
+ {
+ name: "include_descendants_nested_reserved_2",
+ text: `A.B.C.shape: circle
+`,
+ key: `A.B.C`,
+ newKey: `C`,
+ includeDescendants: true,
+
+ exp: `A.B
+C.shape: circle
+`,
+ },
+ {
+ name: "include_descendants_nested_reserved_3",
+ text: `A.B.C.shape: circle
+`,
+ key: `A.B`,
+ newKey: `C`,
+ includeDescendants: true,
+
+ exp: `A
+C.C.shape: circle
+`,
+ },
+ {
+ name: "include_descendants_move_out",
+ text: `a.b: {
+ c: {
+ d
+ }
+}
+`,
+ key: `a.b`,
+ newKey: `b`,
+ includeDescendants: true,
+
+ exp: `a
+b: {
+ c: {
+ d
+ }
+}
+`,
+ },
+ {
+ name: "include_descendants_underscore_regression",
+ text: `x: {
+ _.a
+}
+a
+`,
+ key: `a`,
+ newKey: `x.a`,
+ includeDescendants: true,
+
+ exp: `x: {
+ a
+}
+`,
+ },
+ {
+ name: "include_descendants_underscore_regression_2",
+ text: `x: {
+ _.a.b
+}
+`,
+ key: `a`,
+ newKey: `x.a`,
+ includeDescendants: true,
+
+ exp: `x: {
+ a.b
+}
`,
},
}
@@ -3563,7 +4452,7 @@ Square 3: {
testFunc: func(g *d2graph.Graph) (*d2graph.Graph, error) {
objectsBefore := len(g.Objects)
var err error
- g, err = d2oracle.Move(g, tc.key, tc.newKey)
+ g, err = d2oracle.Move(g, tc.key, tc.newKey, tc.includeDescendants)
if err == nil {
objectsAfter := len(g.Objects)
if objectsBefore != objectsAfter {
@@ -5136,7 +6025,25 @@ Text
Text 2
`,
},
+ {
+ name: "conflicts_generated_3",
+ text: `x: {
+ Square 2
+ Square 3
+}
+Square 2
+Square
+`,
+ key: `x`,
+
+ exp: `Square 4
+Square 3
+
+Square 2
+Square
+`,
+ },
{
name: "drop_value",
text: `a.b.c: "c label"
@@ -5300,15 +6207,237 @@ func (tc editTest) run(t *testing.T) {
assert.Success(t, err)
}
-func TestMoveIDDeltas(t *testing.T) {
+func TestReconnectEdgeIDDeltas(t *testing.T) {
t.Parallel()
testCases := []struct {
name string
text string
- key string
- newKey string
+ edge string
+ newSrc string
+ newDst string
+
+ exp string
+ expErr string
+ }{
+ {
+ name: "basic",
+
+ text: `a -> b
+x
+`,
+ edge: "(a -> b)[0]",
+ newDst: "x",
+
+ exp: `{
+ "(a -> b)[0]": "(a -> x)[0]"
+}`,
+ },
+ {
+ name: "both",
+ text: `a
+b
+c
+a -> b
+`,
+ edge: `(a -> b)[0]`,
+ newSrc: "b",
+ newDst: "a",
+ exp: `{
+ "(a -> b)[0]": "(b -> a)[0]"
+}`,
+ },
+ {
+ name: "contained",
+
+ text: `a.x -> a.y
+a.z
+`,
+ edge: "a.(x -> y)[0]",
+ newDst: "a.z",
+
+ exp: `{
+ "a.(x -> y)[0]": "a.(x -> z)[0]"
+}`,
+ },
+ {
+ name: "second_index",
+
+ text: `a -> b
+a -> b
+c
+`,
+ edge: "(a -> b)[1]",
+ newDst: "c",
+
+ exp: `{
+ "(a -> b)[1]": "(a -> c)[0]"
+}`,
+ },
+ {
+ name: "old_sibling_decrement",
+
+ text: `a -> b
+a -> b
+c
+`,
+ edge: "(a -> b)[0]",
+ newDst: "c",
+
+ exp: `{
+ "(a -> b)[0]": "(a -> c)[0]",
+ "(a -> b)[1]": "(a -> b)[0]"
+}`,
+ },
+ {
+ name: "new_sibling_increment",
+
+ text: `a -> b
+c -> b
+a -> b
+`,
+ edge: "(c -> b)[0]",
+ newSrc: "a",
+
+ exp: `{
+ "(a -> b)[1]": "(a -> b)[2]",
+ "(c -> b)[0]": "(a -> b)[1]"
+}`,
+ },
+ {
+ name: "increment_and_decrement",
+
+ text: `a -> b
+c -> b
+c -> b
+a -> b
+`,
+ edge: "(c -> b)[0]",
+ newSrc: "a",
+
+ exp: `{
+ "(a -> b)[1]": "(a -> b)[2]",
+ "(c -> b)[0]": "(a -> b)[1]",
+ "(c -> b)[1]": "(c -> b)[0]"
+}`,
+ },
+ {
+ name: "in_chain",
+
+ text: `a -> b -> a -> b
+c
+`,
+ edge: "(a -> b)[0]",
+ newDst: "c",
+
+ exp: `{
+ "(a -> b)[0]": "(a -> c)[0]",
+ "(a -> b)[1]": "(a -> b)[0]"
+}`,
+ },
+ {
+ name: "in_chain_2",
+
+ text: `a -> b -> a -> b
+c
+`,
+ edge: "(a -> b)[1]",
+ newDst: "c",
+
+ exp: `{
+ "(a -> b)[1]": "(a -> c)[0]"
+}`,
+ },
+ {
+ name: "in_chain_3",
+
+ text: `a -> b -> a -> c
+`,
+ edge: "(a -> b)[0]",
+ newDst: "c",
+
+ exp: `{
+ "(a -> b)[0]": "(a -> c)[1]"
+}`,
+ },
+ {
+ name: "in_chain_4",
+
+ text: `a -> c -> a -> c
+b
+`,
+ edge: "(a -> c)[0]",
+ newDst: "b",
+
+ exp: `{
+ "(a -> c)[0]": "(a -> b)[0]",
+ "(a -> c)[1]": "(a -> c)[0]"
+}`,
+ },
+ }
+
+ for _, tc := range testCases {
+ tc := tc
+ t.Run(tc.name, func(t *testing.T) {
+ t.Parallel()
+
+ d2Path := fmt.Sprintf("d2/testdata/d2oracle/%v.d2", t.Name())
+ g, err := d2compiler.Compile(d2Path, strings.NewReader(tc.text), nil)
+ if err != nil {
+ t.Fatal(err)
+ }
+
+ var newSrc *string
+ var newDst *string
+ if tc.newSrc != "" {
+ newSrc = &tc.newSrc
+ }
+ if tc.newDst != "" {
+ newDst = &tc.newDst
+ }
+
+ deltas, err := d2oracle.ReconnectEdgeIDDeltas(g, tc.edge, newSrc, newDst)
+ if tc.expErr != "" {
+ if err == nil {
+ t.Fatalf("expected error with: %q", tc.expErr)
+ }
+ ds, err := diff.Strings(tc.expErr, err.Error())
+ if err != nil {
+ t.Fatal(err)
+ }
+ if ds != "" {
+ t.Fatalf("unexpected error: %s", ds)
+ }
+ } else if err != nil {
+ t.Fatal(err)
+ }
+
+ if hasRepeatedValue(deltas) {
+ t.Fatalf("deltas set more than one value equal to another: %s", string(xjson.Marshal(deltas)))
+ }
+
+ ds, err := diff.Strings(tc.exp, string(xjson.Marshal(deltas)))
+ if err != nil {
+ t.Fatal(err)
+ }
+ if ds != "" {
+ t.Fatalf("unexpected deltas: %s", ds)
+ }
+ })
+ }
+}
+
+func TestMoveIDDeltas(t *testing.T) {
+ t.Parallel()
+
+ testCases := []struct {
+ name string
+
+ text string
+ key string
+ newKey string
+ includeDescendants bool
exp string
expErr string
@@ -5513,6 +6642,197 @@ y
"x 3": "y.x 3",
"x 3.x 3": "x 3",
"x 3.x 4": "x 5"
+}`,
+ },
+ {
+ name: "include_descendants_flat",
+
+ text: `x.y
+z
+`,
+ key: `x`,
+ newKey: `z.x`,
+ includeDescendants: true,
+
+ exp: `{
+ "x": "z.x",
+ "x.y": "z.x.y"
+}`,
+ },
+ {
+ name: "include_descendants_map",
+
+ text: `x: {
+ y
+}
+z
+`,
+ key: `x`,
+ newKey: `z.x`,
+ includeDescendants: true,
+
+ exp: `{
+ "x": "z.x",
+ "x.y": "z.x.y"
+}`,
+ },
+ {
+ name: "include_descendants_conflict",
+
+ text: `x.y
+z.x
+`,
+ key: `x`,
+ newKey: `z.x`,
+ includeDescendants: true,
+
+ exp: `{
+ "x": "z.x 2",
+ "x.y": "z.x 2.y"
+}`,
+ },
+ {
+ name: "include_descendants_non_conflict",
+
+ text: `x.y
+z.x
+y
+`,
+ key: `x`,
+ newKey: `z.x`,
+ includeDescendants: true,
+
+ exp: `{
+ "x": "z.x 2",
+ "x.y": "z.x 2.y"
+}`,
+ },
+ {
+ name: "include_descendants_edge_ref",
+ text: `x -> y.z
+`,
+ key: `y.z`,
+ newKey: `z`,
+ includeDescendants: true,
+
+ exp: `{
+ "(x -> y.z)[0]": "(x -> z)[0]",
+ "y.z": "z"
+}`,
+ },
+ {
+ name: "include_descendants_edge_ref_2",
+ text: `x -> y.z
+`,
+ key: `y.z`,
+ newKey: `z`,
+ includeDescendants: true,
+
+ exp: `{
+ "(x -> y.z)[0]": "(x -> z)[0]",
+ "y.z": "z"
+}`,
+ },
+ {
+ name: "include_descendants_edge_ref_3",
+ text: `x -> y.z.a
+`,
+ key: `y.z`,
+ newKey: `z`,
+ includeDescendants: true,
+
+ exp: `{
+ "(x -> y.z.a)[0]": "(x -> z.a)[0]",
+ "y.z": "z",
+ "y.z.a": "z.a"
+}`,
+ },
+ {
+ name: "include_descendants_edge_ref_4",
+ text: `x -> y.z.a
+b
+`,
+ key: `y.z`,
+ newKey: `b.z`,
+ includeDescendants: true,
+
+ exp: `{
+ "(x -> y.z.a)[0]": "(x -> b.z.a)[0]",
+ "y.z": "b.z",
+ "y.z.a": "b.z.a"
+}`,
+ },
+ {
+ name: "include_descendants_underscore_2",
+ text: `a: {
+ b: {
+ _.c
+ }
+}
+`,
+ key: `a.b`,
+ newKey: `b`,
+ includeDescendants: true,
+
+ exp: `{
+ "a.b": "b"
+}`,
+ },
+ {
+ name: "include_descendants_underscore_3",
+ text: `a: {
+ b: {
+ _.c -> d
+ _.c -> _.d
+ }
+}
+`,
+ key: `a.b`,
+ newKey: `b`,
+ includeDescendants: true,
+
+ exp: `{
+ "a.(c -> b.d)[0]": "(a.c -> b.d)[0]",
+ "a.b": "b",
+ "a.b.d": "b.d"
+}`,
+ },
+ {
+ name: "include_descendants_edge_ref_underscore",
+ text: `x
+z
+x.a -> x.b
+b: {
+ _.x.a -> _.x.b
+}
+`,
+ key: `x`,
+ newKey: `z.x`,
+ includeDescendants: true,
+
+ exp: `{
+ "x": "z.x",
+ "x.(a -> b)[0]": "z.x.(a -> b)[0]",
+ "x.(a -> b)[1]": "z.x.(a -> b)[1]",
+ "x.a": "z.x.a",
+ "x.b": "z.x.b"
+}`,
+ },
+ {
+ name: "include_descendants_sql_table",
+
+ text: `x: {
+ shape: sql_table
+ a: b
+}
+z
+`,
+ key: `x`,
+ newKey: `z.x`,
+ includeDescendants: true,
+
+ exp: `{
+ "x": "z.x"
}`,
},
}
@@ -5528,7 +6848,7 @@ y
t.Fatal(err)
}
- deltas, err := d2oracle.MoveIDDeltas(g, tc.key, tc.newKey)
+ deltas, err := d2oracle.MoveIDDeltas(g, tc.key, tc.newKey, tc.includeDescendants)
if tc.expErr != "" {
if err == nil {
t.Fatalf("expected error with: %q", tc.expErr)
@@ -5816,6 +7136,23 @@ Text 2
exp: `{
"Text.Text 2": "Text"
+}`,
+ },
+ {
+ name: "conflicts_generated_3",
+ text: `x: {
+ Square 2
+ Square 3
+}
+
+Square 2
+Square
+`,
+ key: `x`,
+
+ exp: `{
+ "x.Square 2": "Square 4",
+ "x.Square 3": "Square 3"
}`,
},
}
@@ -5937,6 +7274,17 @@ y
"x": "y 2"
}`,
},
+ {
+ name: "generated-conflict",
+
+ text: `Square
+Square 2
+`,
+ key: `Square 2`,
+ newName: `Square`,
+
+ exp: `{}`,
+ },
{
name: "rename_conflict_with_dots",
diff --git a/d2oracle/get.go b/d2oracle/get.go
index ff9de18eb..f24178efd 100644
--- a/d2oracle/get.go
+++ b/d2oracle/get.go
@@ -3,10 +3,29 @@ package d2oracle
import (
"fmt"
+ "oss.terrastruct.com/d2/d2ast"
+ "oss.terrastruct.com/d2/d2format"
"oss.terrastruct.com/d2/d2graph"
"oss.terrastruct.com/d2/d2parser"
)
+func GetChildrenIDs(g *d2graph.Graph, absID string) (ids []string, _ error) {
+ mk, err := d2parser.ParseMapKey(absID)
+ if err != nil {
+ return nil, err
+ }
+ obj, ok := g.Root.HasChild(d2graph.Key(mk.Key))
+ if !ok {
+ return nil, fmt.Errorf("%v not found", absID)
+ }
+
+ for _, ch := range obj.ChildrenArray {
+ ids = append(ids, ch.AbsID())
+ }
+
+ return ids, nil
+}
+
func GetParentID(g *d2graph.Graph, absID string) (string, error) {
mk, err := d2parser.ParseMapKey(absID)
if err != nil {
@@ -35,6 +54,24 @@ func GetEdge(g *d2graph.Graph, absID string) *d2graph.Edge {
return nil
}
+func GetObjOrder(g *d2graph.Graph) []string {
+ var order []string
+
+ queue := []*d2graph.Object{g.Root}
+ for len(queue) > 0 {
+ curr := queue[0]
+ queue = queue[1:]
+ if curr != g.Root {
+ order = append(order, curr.AbsID())
+ }
+ for _, ch := range curr.ChildrenArray {
+ queue = append(queue, ch)
+ }
+ }
+
+ return order
+}
+
func IsLabelKeyID(key, label string) bool {
mk, err := d2parser.ParseMapKey(key)
if err != nil {
@@ -49,3 +86,18 @@ func IsLabelKeyID(key, label string) bool {
return mk.Key.Path[len(mk.Key.Path)-1].Unbox().ScalarString() == label
}
+
+func GetID(key string) string {
+ mk, err := d2parser.ParseMapKey(key)
+ if err != nil {
+ return ""
+ }
+ if len(mk.Edges) > 0 {
+ return ""
+ }
+ if mk.Key == nil {
+ return ""
+ }
+
+ return d2format.Format(d2ast.RawString(mk.Key.Path[len(mk.Key.Path)-1].Unbox().ScalarString(), true))
+}
diff --git a/d2oracle/get_test.go b/d2oracle/get_test.go
index 21e695506..d98f7108e 100644
--- a/d2oracle/get_test.go
+++ b/d2oracle/get_test.go
@@ -18,3 +18,9 @@ func TestIsLabelKeyID(t *testing.T) {
assert.Equal(t, false, d2oracle.IsLabelKeyID("x", "y"))
assert.Equal(t, false, d2oracle.IsLabelKeyID("x->y", "y"))
}
+
+func TestGetID(t *testing.T) {
+ t.Parallel()
+
+ assert.Equal(t, `"y (z)"`, d2oracle.GetID(`y (z)`))
+}
diff --git a/d2parser/parse.go b/d2parser/parse.go
index 1a205e959..162caf5af 100644
--- a/d2parser/parse.go
+++ b/d2parser/parse.go
@@ -919,11 +919,12 @@ func (p *parser) parseKey() (k *d2ast.KeyPath) {
Start: p.pos,
},
}
- defer k.Range.End.From(&p.pos)
defer func() {
if len(k.Path) == 0 {
k = nil
+ } else {
+ k.Range.End = k.Path[len(k.Path)-1].Unbox().GetRange().End
}
}()
@@ -948,6 +949,9 @@ func (p *parser) parseKey() (k *d2ast.KeyPath) {
return k
}
+ if len(k.Path) == 0 {
+ k.Range.Start = s.GetRange().Start
+ }
k.Path = append(k.Path, &sb)
r, newlines, eof = p.peekNotSpace()
diff --git a/d2parser/parse_test.go b/d2parser/parse_test.go
index e8bcbfe02..b1c8dfb3d 100644
--- a/d2parser/parse_test.go
+++ b/d2parser/parse_test.go
@@ -20,8 +20,9 @@ func TestParse(t *testing.T) {
t.Parallel()
testCases := []struct {
- name string
- text string
+ name string
+ text string
+ assert func(t testing.TB, ast *d2ast.Map, err error)
// exp is in testdata/d2parser/TestParse/${name}.json
}{
@@ -379,6 +380,18 @@ b-
c-
`,
},
+ {
+ name: "whitespace_range",
+ text: ` a -> b -> c `,
+ assert: func(t testing.TB, ast *d2ast.Map, err error) {
+ assert.Equal(t, "1:2", ast.Nodes[0].MapKey.Edges[0].Src.Range.Start.String())
+ assert.Equal(t, "1:3", ast.Nodes[0].MapKey.Edges[0].Src.Range.End.String())
+ assert.Equal(t, "1:7", ast.Nodes[0].MapKey.Edges[0].Dst.Range.Start.String())
+ assert.Equal(t, "1:8", ast.Nodes[0].MapKey.Edges[0].Dst.Range.End.String())
+ assert.Equal(t, "1:12", ast.Nodes[0].MapKey.Edges[1].Dst.Range.Start.String())
+ assert.Equal(t, "1:13", ast.Nodes[0].MapKey.Edges[1].Dst.Range.End.String())
+ },
+ },
}
for _, tc := range testCases {
@@ -389,6 +402,10 @@ c-
d2Path := fmt.Sprintf("d2/testdata/d2parser/%v.d2", t.Name())
ast, err := d2parser.Parse(d2Path, strings.NewReader(tc.text), nil)
+ if tc.assert != nil {
+ tc.assert(t, ast, err)
+ }
+
got := struct {
AST *d2ast.Map `json:"ast"`
Err error `json:"err"`
diff --git a/d2renderers/d2fonts/d2fonts.go b/d2renderers/d2fonts/d2fonts.go
index 058371017..2c692ab35 100644
--- a/d2renderers/d2fonts/d2fonts.go
+++ b/d2renderers/d2fonts/d2fonts.go
@@ -10,8 +10,7 @@ import (
"fmt"
"strings"
- "github.com/jung-kurt/gofpdf"
-
+ "oss.terrastruct.com/d2/lib/font"
fontlib "oss.terrastruct.com/d2/lib/font"
)
@@ -44,7 +43,7 @@ func (f Font) GetEncodedSubset(corpus string) string {
fontBuf := make([]byte, len(FontFaces[f]))
copy(fontBuf, FontFaces[f])
- fontBuf = gofpdf.UTF8CutFont(fontBuf, uniqueChars)
+ fontBuf = font.UTF8CutFont(fontBuf, uniqueChars)
fontBuf, err := fontlib.Sfnt2Woff(fontBuf)
if err != nil {
diff --git a/d2renderers/d2fonts/d2fonts_test.go b/d2renderers/d2fonts/d2fonts_test.go
index 0d28aece8..fc95ff310 100644
--- a/d2renderers/d2fonts/d2fonts_test.go
+++ b/d2renderers/d2fonts/d2fonts_test.go
@@ -4,8 +4,7 @@ import (
"path/filepath"
"testing"
- "github.com/jung-kurt/gofpdf"
-
+ "oss.terrastruct.com/d2/lib/font"
"oss.terrastruct.com/util-go/assert"
"oss.terrastruct.com/util-go/diff"
)
@@ -17,7 +16,7 @@ func TestCutFont(t *testing.T) {
}
fontBuf := make([]byte, len(FontFaces[f]))
copy(fontBuf, FontFaces[f])
- fontBuf = gofpdf.UTF8CutFont(fontBuf, " 1")
+ fontBuf = font.UTF8CutFont(fontBuf, " 1")
err := diff.Testdata(filepath.Join("testdata", "d2fonts", "cut"), ".txt", fontBuf)
assert.Success(t, err)
}
diff --git a/d2renderers/d2fonts/testdata/d2fonts/cut.exp.txt b/d2renderers/d2fonts/testdata/d2fonts/cut.exp.txt
index 358066a59..0dcff9675 100644
Binary files a/d2renderers/d2fonts/testdata/d2fonts/cut.exp.txt and b/d2renderers/d2fonts/testdata/d2fonts/cut.exp.txt differ
diff --git a/d2renderers/d2sketch/testdata/all_shapes/sketch.exp.svg b/d2renderers/d2sketch/testdata/all_shapes/sketch.exp.svg
index c673e8532..052e94abc 100644
--- a/d2renderers/d2sketch/testdata/all_shapes/sketch.exp.svg
+++ b/d2renderers/d2sketch/testdata/all_shapes/sketch.exp.svg
@@ -1,10 +1,10 @@
-
+ .d2-2495420426 .fill-N1{fill:#0A0F25;}
+ .d2-2495420426 .fill-N2{fill:#676C7E;}
+ .d2-2495420426 .fill-N3{fill:#9499AB;}
+ .d2-2495420426 .fill-N4{fill:#CFD2DD;}
+ .d2-2495420426 .fill-N5{fill:#DEE1EB;}
+ .d2-2495420426 .fill-N6{fill:#EEF1F8;}
+ .d2-2495420426 .fill-N7{fill:#FFFFFF;}
+ .d2-2495420426 .fill-B1{fill:#0D32B2;}
+ .d2-2495420426 .fill-B2{fill:#0D32B2;}
+ .d2-2495420426 .fill-B3{fill:#E3E9FD;}
+ .d2-2495420426 .fill-B4{fill:#E3E9FD;}
+ .d2-2495420426 .fill-B5{fill:#EDF0FD;}
+ .d2-2495420426 .fill-B6{fill:#F7F8FE;}
+ .d2-2495420426 .fill-AA2{fill:#4A6FF3;}
+ .d2-2495420426 .fill-AA4{fill:#EDF0FD;}
+ .d2-2495420426 .fill-AA5{fill:#F7F8FE;}
+ .d2-2495420426 .fill-AB4{fill:#EDF0FD;}
+ .d2-2495420426 .fill-AB5{fill:#F7F8FE;}
+ .d2-2495420426 .stroke-N1{stroke:#0A0F25;}
+ .d2-2495420426 .stroke-N2{stroke:#676C7E;}
+ .d2-2495420426 .stroke-N3{stroke:#9499AB;}
+ .d2-2495420426 .stroke-N4{stroke:#CFD2DD;}
+ .d2-2495420426 .stroke-N5{stroke:#DEE1EB;}
+ .d2-2495420426 .stroke-N6{stroke:#EEF1F8;}
+ .d2-2495420426 .stroke-N7{stroke:#FFFFFF;}
+ .d2-2495420426 .stroke-B1{stroke:#0D32B2;}
+ .d2-2495420426 .stroke-B2{stroke:#0D32B2;}
+ .d2-2495420426 .stroke-B3{stroke:#E3E9FD;}
+ .d2-2495420426 .stroke-B4{stroke:#E3E9FD;}
+ .d2-2495420426 .stroke-B5{stroke:#EDF0FD;}
+ .d2-2495420426 .stroke-B6{stroke:#F7F8FE;}
+ .d2-2495420426 .stroke-AA2{stroke:#4A6FF3;}
+ .d2-2495420426 .stroke-AA4{stroke:#EDF0FD;}
+ .d2-2495420426 .stroke-AA5{stroke:#F7F8FE;}
+ .d2-2495420426 .stroke-AB4{stroke:#EDF0FD;}
+ .d2-2495420426 .stroke-AB5{stroke:#F7F8FE;}
+ .d2-2495420426 .background-color-N1{background-color:#0A0F25;}
+ .d2-2495420426 .background-color-N2{background-color:#676C7E;}
+ .d2-2495420426 .background-color-N3{background-color:#9499AB;}
+ .d2-2495420426 .background-color-N4{background-color:#CFD2DD;}
+ .d2-2495420426 .background-color-N5{background-color:#DEE1EB;}
+ .d2-2495420426 .background-color-N6{background-color:#EEF1F8;}
+ .d2-2495420426 .background-color-N7{background-color:#FFFFFF;}
+ .d2-2495420426 .background-color-B1{background-color:#0D32B2;}
+ .d2-2495420426 .background-color-B2{background-color:#0D32B2;}
+ .d2-2495420426 .background-color-B3{background-color:#E3E9FD;}
+ .d2-2495420426 .background-color-B4{background-color:#E3E9FD;}
+ .d2-2495420426 .background-color-B5{background-color:#EDF0FD;}
+ .d2-2495420426 .background-color-B6{background-color:#F7F8FE;}
+ .d2-2495420426 .background-color-AA2{background-color:#4A6FF3;}
+ .d2-2495420426 .background-color-AA4{background-color:#EDF0FD;}
+ .d2-2495420426 .background-color-AA5{background-color:#F7F8FE;}
+ .d2-2495420426 .background-color-AB4{background-color:#EDF0FD;}
+ .d2-2495420426 .background-color-AB5{background-color:#F7F8FE;}
+ .d2-2495420426 .color-N1{color:#0A0F25;}
+ .d2-2495420426 .color-N2{color:#676C7E;}
+ .d2-2495420426 .color-N3{color:#9499AB;}
+ .d2-2495420426 .color-N4{color:#CFD2DD;}
+ .d2-2495420426 .color-N5{color:#DEE1EB;}
+ .d2-2495420426 .color-N6{color:#EEF1F8;}
+ .d2-2495420426 .color-N7{color:#FFFFFF;}
+ .d2-2495420426 .color-B1{color:#0D32B2;}
+ .d2-2495420426 .color-B2{color:#0D32B2;}
+ .d2-2495420426 .color-B3{color:#E3E9FD;}
+ .d2-2495420426 .color-B4{color:#E3E9FD;}
+ .d2-2495420426 .color-B5{color:#EDF0FD;}
+ .d2-2495420426 .color-B6{color:#F7F8FE;}
+ .d2-2495420426 .color-AA2{color:#4A6FF3;}
+ .d2-2495420426 .color-AA4{color:#EDF0FD;}
+ .d2-2495420426 .color-AA5{color:#F7F8FE;}
+ .d2-2495420426 .color-AB4{color:#EDF0FD;}
+ .d2-2495420426 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>
@@ -97,7 +97,7 @@
- rectangle square page parallelogram document cylinder queue package step callout stored_data person diamond oval circle hexagon cloud
+ rectangle square page parallelogram document cylinder queue package step callout stored_data person diamond oval circle hexagon cloud
\ No newline at end of file
diff --git a/d2renderers/d2sketch/testdata/all_shapes_dark/sketch.exp.svg b/d2renderers/d2sketch/testdata/all_shapes_dark/sketch.exp.svg
index f8873eebd..bc264d89b 100644
--- a/d2renderers/d2sketch/testdata/all_shapes_dark/sketch.exp.svg
+++ b/d2renderers/d2sketch/testdata/all_shapes_dark/sketch.exp.svg
@@ -1,10 +1,10 @@
-
+ .d2-2495420426 .fill-N1{fill:#CDD6F4;}
+ .d2-2495420426 .fill-N2{fill:#BAC2DE;}
+ .d2-2495420426 .fill-N3{fill:#A6ADC8;}
+ .d2-2495420426 .fill-N4{fill:#585B70;}
+ .d2-2495420426 .fill-N5{fill:#45475A;}
+ .d2-2495420426 .fill-N6{fill:#313244;}
+ .d2-2495420426 .fill-N7{fill:#1E1E2E;}
+ .d2-2495420426 .fill-B1{fill:#CBA6f7;}
+ .d2-2495420426 .fill-B2{fill:#CBA6f7;}
+ .d2-2495420426 .fill-B3{fill:#6C7086;}
+ .d2-2495420426 .fill-B4{fill:#585B70;}
+ .d2-2495420426 .fill-B5{fill:#45475A;}
+ .d2-2495420426 .fill-B6{fill:#313244;}
+ .d2-2495420426 .fill-AA2{fill:#f38BA8;}
+ .d2-2495420426 .fill-AA4{fill:#45475A;}
+ .d2-2495420426 .fill-AA5{fill:#313244;}
+ .d2-2495420426 .fill-AB4{fill:#45475A;}
+ .d2-2495420426 .fill-AB5{fill:#313244;}
+ .d2-2495420426 .stroke-N1{stroke:#CDD6F4;}
+ .d2-2495420426 .stroke-N2{stroke:#BAC2DE;}
+ .d2-2495420426 .stroke-N3{stroke:#A6ADC8;}
+ .d2-2495420426 .stroke-N4{stroke:#585B70;}
+ .d2-2495420426 .stroke-N5{stroke:#45475A;}
+ .d2-2495420426 .stroke-N6{stroke:#313244;}
+ .d2-2495420426 .stroke-N7{stroke:#1E1E2E;}
+ .d2-2495420426 .stroke-B1{stroke:#CBA6f7;}
+ .d2-2495420426 .stroke-B2{stroke:#CBA6f7;}
+ .d2-2495420426 .stroke-B3{stroke:#6C7086;}
+ .d2-2495420426 .stroke-B4{stroke:#585B70;}
+ .d2-2495420426 .stroke-B5{stroke:#45475A;}
+ .d2-2495420426 .stroke-B6{stroke:#313244;}
+ .d2-2495420426 .stroke-AA2{stroke:#f38BA8;}
+ .d2-2495420426 .stroke-AA4{stroke:#45475A;}
+ .d2-2495420426 .stroke-AA5{stroke:#313244;}
+ .d2-2495420426 .stroke-AB4{stroke:#45475A;}
+ .d2-2495420426 .stroke-AB5{stroke:#313244;}
+ .d2-2495420426 .background-color-N1{background-color:#CDD6F4;}
+ .d2-2495420426 .background-color-N2{background-color:#BAC2DE;}
+ .d2-2495420426 .background-color-N3{background-color:#A6ADC8;}
+ .d2-2495420426 .background-color-N4{background-color:#585B70;}
+ .d2-2495420426 .background-color-N5{background-color:#45475A;}
+ .d2-2495420426 .background-color-N6{background-color:#313244;}
+ .d2-2495420426 .background-color-N7{background-color:#1E1E2E;}
+ .d2-2495420426 .background-color-B1{background-color:#CBA6f7;}
+ .d2-2495420426 .background-color-B2{background-color:#CBA6f7;}
+ .d2-2495420426 .background-color-B3{background-color:#6C7086;}
+ .d2-2495420426 .background-color-B4{background-color:#585B70;}
+ .d2-2495420426 .background-color-B5{background-color:#45475A;}
+ .d2-2495420426 .background-color-B6{background-color:#313244;}
+ .d2-2495420426 .background-color-AA2{background-color:#f38BA8;}
+ .d2-2495420426 .background-color-AA4{background-color:#45475A;}
+ .d2-2495420426 .background-color-AA5{background-color:#313244;}
+ .d2-2495420426 .background-color-AB4{background-color:#45475A;}
+ .d2-2495420426 .background-color-AB5{background-color:#313244;}
+ .d2-2495420426 .color-N1{color:#CDD6F4;}
+ .d2-2495420426 .color-N2{color:#BAC2DE;}
+ .d2-2495420426 .color-N3{color:#A6ADC8;}
+ .d2-2495420426 .color-N4{color:#585B70;}
+ .d2-2495420426 .color-N5{color:#45475A;}
+ .d2-2495420426 .color-N6{color:#313244;}
+ .d2-2495420426 .color-N7{color:#1E1E2E;}
+ .d2-2495420426 .color-B1{color:#CBA6f7;}
+ .d2-2495420426 .color-B2{color:#CBA6f7;}
+ .d2-2495420426 .color-B3{color:#6C7086;}
+ .d2-2495420426 .color-B4{color:#585B70;}
+ .d2-2495420426 .color-B5{color:#45475A;}
+ .d2-2495420426 .color-B6{color:#313244;}
+ .d2-2495420426 .color-AA2{color:#f38BA8;}
+ .d2-2495420426 .color-AA4{color:#45475A;}
+ .d2-2495420426 .color-AA5{color:#313244;}
+ .d2-2495420426 .color-AB4{color:#45475A;}
+ .d2-2495420426 .color-AB5{color:#313244;}.appendix text.text{fill:#CDD6F4}.md{--color-fg-default:#CDD6F4;--color-fg-muted:#BAC2DE;--color-fg-subtle:#A6ADC8;--color-canvas-default:#1E1E2E;--color-canvas-subtle:#313244;--color-border-default:#CBA6f7;--color-border-muted:#CBA6f7;--color-neutral-muted:#313244;--color-accent-fg:#CBA6f7;--color-accent-emphasis:#CBA6f7;--color-attention-subtle:#BAC2DE;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-B2{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-B3{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-B4{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-B5{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B6{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-AA2{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-AA4{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-AA5{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-AB4{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-AB5{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N1{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N2{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N5{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N6{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N7{fill:url(#streaks-darker);mix-blend-mode:lighten}.light-code{display: none}.dark-code{display: block}]]>
- rectangle square page parallelogram document cylinder queue package step callout stored_data person diamond oval circle hexagon cloud
+ rectangle square page parallelogram document cylinder queue package step callout stored_data person diamond oval circle hexagon cloud
\ No newline at end of file
diff --git a/d2renderers/d2sketch/testdata/animated/sketch.exp.svg b/d2renderers/d2sketch/testdata/animated/sketch.exp.svg
index 3826b35a6..91fa2d1ec 100644
--- a/d2renderers/d2sketch/testdata/animated/sketch.exp.svg
+++ b/d2renderers/d2sketch/testdata/animated/sketch.exp.svg
@@ -1,10 +1,10 @@
-
+ .d2-625576809 .fill-N1{fill:#0A0F25;}
+ .d2-625576809 .fill-N2{fill:#676C7E;}
+ .d2-625576809 .fill-N3{fill:#9499AB;}
+ .d2-625576809 .fill-N4{fill:#CFD2DD;}
+ .d2-625576809 .fill-N5{fill:#DEE1EB;}
+ .d2-625576809 .fill-N6{fill:#EEF1F8;}
+ .d2-625576809 .fill-N7{fill:#FFFFFF;}
+ .d2-625576809 .fill-B1{fill:#0D32B2;}
+ .d2-625576809 .fill-B2{fill:#0D32B2;}
+ .d2-625576809 .fill-B3{fill:#E3E9FD;}
+ .d2-625576809 .fill-B4{fill:#E3E9FD;}
+ .d2-625576809 .fill-B5{fill:#EDF0FD;}
+ .d2-625576809 .fill-B6{fill:#F7F8FE;}
+ .d2-625576809 .fill-AA2{fill:#4A6FF3;}
+ .d2-625576809 .fill-AA4{fill:#EDF0FD;}
+ .d2-625576809 .fill-AA5{fill:#F7F8FE;}
+ .d2-625576809 .fill-AB4{fill:#EDF0FD;}
+ .d2-625576809 .fill-AB5{fill:#F7F8FE;}
+ .d2-625576809 .stroke-N1{stroke:#0A0F25;}
+ .d2-625576809 .stroke-N2{stroke:#676C7E;}
+ .d2-625576809 .stroke-N3{stroke:#9499AB;}
+ .d2-625576809 .stroke-N4{stroke:#CFD2DD;}
+ .d2-625576809 .stroke-N5{stroke:#DEE1EB;}
+ .d2-625576809 .stroke-N6{stroke:#EEF1F8;}
+ .d2-625576809 .stroke-N7{stroke:#FFFFFF;}
+ .d2-625576809 .stroke-B1{stroke:#0D32B2;}
+ .d2-625576809 .stroke-B2{stroke:#0D32B2;}
+ .d2-625576809 .stroke-B3{stroke:#E3E9FD;}
+ .d2-625576809 .stroke-B4{stroke:#E3E9FD;}
+ .d2-625576809 .stroke-B5{stroke:#EDF0FD;}
+ .d2-625576809 .stroke-B6{stroke:#F7F8FE;}
+ .d2-625576809 .stroke-AA2{stroke:#4A6FF3;}
+ .d2-625576809 .stroke-AA4{stroke:#EDF0FD;}
+ .d2-625576809 .stroke-AA5{stroke:#F7F8FE;}
+ .d2-625576809 .stroke-AB4{stroke:#EDF0FD;}
+ .d2-625576809 .stroke-AB5{stroke:#F7F8FE;}
+ .d2-625576809 .background-color-N1{background-color:#0A0F25;}
+ .d2-625576809 .background-color-N2{background-color:#676C7E;}
+ .d2-625576809 .background-color-N3{background-color:#9499AB;}
+ .d2-625576809 .background-color-N4{background-color:#CFD2DD;}
+ .d2-625576809 .background-color-N5{background-color:#DEE1EB;}
+ .d2-625576809 .background-color-N6{background-color:#EEF1F8;}
+ .d2-625576809 .background-color-N7{background-color:#FFFFFF;}
+ .d2-625576809 .background-color-B1{background-color:#0D32B2;}
+ .d2-625576809 .background-color-B2{background-color:#0D32B2;}
+ .d2-625576809 .background-color-B3{background-color:#E3E9FD;}
+ .d2-625576809 .background-color-B4{background-color:#E3E9FD;}
+ .d2-625576809 .background-color-B5{background-color:#EDF0FD;}
+ .d2-625576809 .background-color-B6{background-color:#F7F8FE;}
+ .d2-625576809 .background-color-AA2{background-color:#4A6FF3;}
+ .d2-625576809 .background-color-AA4{background-color:#EDF0FD;}
+ .d2-625576809 .background-color-AA5{background-color:#F7F8FE;}
+ .d2-625576809 .background-color-AB4{background-color:#EDF0FD;}
+ .d2-625576809 .background-color-AB5{background-color:#F7F8FE;}
+ .d2-625576809 .color-N1{color:#0A0F25;}
+ .d2-625576809 .color-N2{color:#676C7E;}
+ .d2-625576809 .color-N3{color:#9499AB;}
+ .d2-625576809 .color-N4{color:#CFD2DD;}
+ .d2-625576809 .color-N5{color:#DEE1EB;}
+ .d2-625576809 .color-N6{color:#EEF1F8;}
+ .d2-625576809 .color-N7{color:#FFFFFF;}
+ .d2-625576809 .color-B1{color:#0D32B2;}
+ .d2-625576809 .color-B2{color:#0D32B2;}
+ .d2-625576809 .color-B3{color:#E3E9FD;}
+ .d2-625576809 .color-B4{color:#E3E9FD;}
+ .d2-625576809 .color-B5{color:#EDF0FD;}
+ .d2-625576809 .color-B6{color:#F7F8FE;}
+ .d2-625576809 .color-AA2{color:#4A6FF3;}
+ .d2-625576809 .color-AA4{color:#EDF0FD;}
+ .d2-625576809 .color-AA5{color:#F7F8FE;}
+ .d2-625576809 .color-AB4{color:#EDF0FD;}
+ .d2-625576809 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>
@@ -110,7 +110,7 @@
- winter summer trees snow sun
-
+ winter summer trees snow sun
+
\ No newline at end of file
diff --git a/d2renderers/d2sketch/testdata/animated_dark/sketch.exp.svg b/d2renderers/d2sketch/testdata/animated_dark/sketch.exp.svg
index a8e19fb1e..ac5652d2d 100644
--- a/d2renderers/d2sketch/testdata/animated_dark/sketch.exp.svg
+++ b/d2renderers/d2sketch/testdata/animated_dark/sketch.exp.svg
@@ -1,10 +1,10 @@
-
+ .d2-625576809 .fill-N1{fill:#CDD6F4;}
+ .d2-625576809 .fill-N2{fill:#BAC2DE;}
+ .d2-625576809 .fill-N3{fill:#A6ADC8;}
+ .d2-625576809 .fill-N4{fill:#585B70;}
+ .d2-625576809 .fill-N5{fill:#45475A;}
+ .d2-625576809 .fill-N6{fill:#313244;}
+ .d2-625576809 .fill-N7{fill:#1E1E2E;}
+ .d2-625576809 .fill-B1{fill:#CBA6f7;}
+ .d2-625576809 .fill-B2{fill:#CBA6f7;}
+ .d2-625576809 .fill-B3{fill:#6C7086;}
+ .d2-625576809 .fill-B4{fill:#585B70;}
+ .d2-625576809 .fill-B5{fill:#45475A;}
+ .d2-625576809 .fill-B6{fill:#313244;}
+ .d2-625576809 .fill-AA2{fill:#f38BA8;}
+ .d2-625576809 .fill-AA4{fill:#45475A;}
+ .d2-625576809 .fill-AA5{fill:#313244;}
+ .d2-625576809 .fill-AB4{fill:#45475A;}
+ .d2-625576809 .fill-AB5{fill:#313244;}
+ .d2-625576809 .stroke-N1{stroke:#CDD6F4;}
+ .d2-625576809 .stroke-N2{stroke:#BAC2DE;}
+ .d2-625576809 .stroke-N3{stroke:#A6ADC8;}
+ .d2-625576809 .stroke-N4{stroke:#585B70;}
+ .d2-625576809 .stroke-N5{stroke:#45475A;}
+ .d2-625576809 .stroke-N6{stroke:#313244;}
+ .d2-625576809 .stroke-N7{stroke:#1E1E2E;}
+ .d2-625576809 .stroke-B1{stroke:#CBA6f7;}
+ .d2-625576809 .stroke-B2{stroke:#CBA6f7;}
+ .d2-625576809 .stroke-B3{stroke:#6C7086;}
+ .d2-625576809 .stroke-B4{stroke:#585B70;}
+ .d2-625576809 .stroke-B5{stroke:#45475A;}
+ .d2-625576809 .stroke-B6{stroke:#313244;}
+ .d2-625576809 .stroke-AA2{stroke:#f38BA8;}
+ .d2-625576809 .stroke-AA4{stroke:#45475A;}
+ .d2-625576809 .stroke-AA5{stroke:#313244;}
+ .d2-625576809 .stroke-AB4{stroke:#45475A;}
+ .d2-625576809 .stroke-AB5{stroke:#313244;}
+ .d2-625576809 .background-color-N1{background-color:#CDD6F4;}
+ .d2-625576809 .background-color-N2{background-color:#BAC2DE;}
+ .d2-625576809 .background-color-N3{background-color:#A6ADC8;}
+ .d2-625576809 .background-color-N4{background-color:#585B70;}
+ .d2-625576809 .background-color-N5{background-color:#45475A;}
+ .d2-625576809 .background-color-N6{background-color:#313244;}
+ .d2-625576809 .background-color-N7{background-color:#1E1E2E;}
+ .d2-625576809 .background-color-B1{background-color:#CBA6f7;}
+ .d2-625576809 .background-color-B2{background-color:#CBA6f7;}
+ .d2-625576809 .background-color-B3{background-color:#6C7086;}
+ .d2-625576809 .background-color-B4{background-color:#585B70;}
+ .d2-625576809 .background-color-B5{background-color:#45475A;}
+ .d2-625576809 .background-color-B6{background-color:#313244;}
+ .d2-625576809 .background-color-AA2{background-color:#f38BA8;}
+ .d2-625576809 .background-color-AA4{background-color:#45475A;}
+ .d2-625576809 .background-color-AA5{background-color:#313244;}
+ .d2-625576809 .background-color-AB4{background-color:#45475A;}
+ .d2-625576809 .background-color-AB5{background-color:#313244;}
+ .d2-625576809 .color-N1{color:#CDD6F4;}
+ .d2-625576809 .color-N2{color:#BAC2DE;}
+ .d2-625576809 .color-N3{color:#A6ADC8;}
+ .d2-625576809 .color-N4{color:#585B70;}
+ .d2-625576809 .color-N5{color:#45475A;}
+ .d2-625576809 .color-N6{color:#313244;}
+ .d2-625576809 .color-N7{color:#1E1E2E;}
+ .d2-625576809 .color-B1{color:#CBA6f7;}
+ .d2-625576809 .color-B2{color:#CBA6f7;}
+ .d2-625576809 .color-B3{color:#6C7086;}
+ .d2-625576809 .color-B4{color:#585B70;}
+ .d2-625576809 .color-B5{color:#45475A;}
+ .d2-625576809 .color-B6{color:#313244;}
+ .d2-625576809 .color-AA2{color:#f38BA8;}
+ .d2-625576809 .color-AA4{color:#45475A;}
+ .d2-625576809 .color-AA5{color:#313244;}
+ .d2-625576809 .color-AB4{color:#45475A;}
+ .d2-625576809 .color-AB5{color:#313244;}.appendix text.text{fill:#CDD6F4}.md{--color-fg-default:#CDD6F4;--color-fg-muted:#BAC2DE;--color-fg-subtle:#A6ADC8;--color-canvas-default:#1E1E2E;--color-canvas-subtle:#313244;--color-border-default:#CBA6f7;--color-border-muted:#CBA6f7;--color-neutral-muted:#313244;--color-accent-fg:#CBA6f7;--color-accent-emphasis:#CBA6f7;--color-attention-subtle:#BAC2DE;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-B2{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-B3{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-B4{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-B5{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B6{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-AA2{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-AA4{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-AA5{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-AB4{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-AB5{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N1{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N2{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N5{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N6{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N7{fill:url(#streaks-darker);mix-blend-mode:lighten}.light-code{display: none}.dark-code{display: block}]]>
- winter summer trees snow sun
-
+ winter summer trees snow sun
+
\ No newline at end of file
diff --git a/d2renderers/d2sketch/testdata/arrowheads/sketch.exp.svg b/d2renderers/d2sketch/testdata/arrowheads/sketch.exp.svg
index fef167ff2..745182163 100644
--- a/d2renderers/d2sketch/testdata/arrowheads/sketch.exp.svg
+++ b/d2renderers/d2sketch/testdata/arrowheads/sketch.exp.svg
@@ -1,17 +1,17 @@
-
+ .d2-3125322966 .fill-N1{fill:#0A0F25;}
+ .d2-3125322966 .fill-N2{fill:#676C7E;}
+ .d2-3125322966 .fill-N3{fill:#9499AB;}
+ .d2-3125322966 .fill-N4{fill:#CFD2DD;}
+ .d2-3125322966 .fill-N5{fill:#DEE1EB;}
+ .d2-3125322966 .fill-N6{fill:#EEF1F8;}
+ .d2-3125322966 .fill-N7{fill:#FFFFFF;}
+ .d2-3125322966 .fill-B1{fill:#0D32B2;}
+ .d2-3125322966 .fill-B2{fill:#0D32B2;}
+ .d2-3125322966 .fill-B3{fill:#E3E9FD;}
+ .d2-3125322966 .fill-B4{fill:#E3E9FD;}
+ .d2-3125322966 .fill-B5{fill:#EDF0FD;}
+ .d2-3125322966 .fill-B6{fill:#F7F8FE;}
+ .d2-3125322966 .fill-AA2{fill:#4A6FF3;}
+ .d2-3125322966 .fill-AA4{fill:#EDF0FD;}
+ .d2-3125322966 .fill-AA5{fill:#F7F8FE;}
+ .d2-3125322966 .fill-AB4{fill:#EDF0FD;}
+ .d2-3125322966 .fill-AB5{fill:#F7F8FE;}
+ .d2-3125322966 .stroke-N1{stroke:#0A0F25;}
+ .d2-3125322966 .stroke-N2{stroke:#676C7E;}
+ .d2-3125322966 .stroke-N3{stroke:#9499AB;}
+ .d2-3125322966 .stroke-N4{stroke:#CFD2DD;}
+ .d2-3125322966 .stroke-N5{stroke:#DEE1EB;}
+ .d2-3125322966 .stroke-N6{stroke:#EEF1F8;}
+ .d2-3125322966 .stroke-N7{stroke:#FFFFFF;}
+ .d2-3125322966 .stroke-B1{stroke:#0D32B2;}
+ .d2-3125322966 .stroke-B2{stroke:#0D32B2;}
+ .d2-3125322966 .stroke-B3{stroke:#E3E9FD;}
+ .d2-3125322966 .stroke-B4{stroke:#E3E9FD;}
+ .d2-3125322966 .stroke-B5{stroke:#EDF0FD;}
+ .d2-3125322966 .stroke-B6{stroke:#F7F8FE;}
+ .d2-3125322966 .stroke-AA2{stroke:#4A6FF3;}
+ .d2-3125322966 .stroke-AA4{stroke:#EDF0FD;}
+ .d2-3125322966 .stroke-AA5{stroke:#F7F8FE;}
+ .d2-3125322966 .stroke-AB4{stroke:#EDF0FD;}
+ .d2-3125322966 .stroke-AB5{stroke:#F7F8FE;}
+ .d2-3125322966 .background-color-N1{background-color:#0A0F25;}
+ .d2-3125322966 .background-color-N2{background-color:#676C7E;}
+ .d2-3125322966 .background-color-N3{background-color:#9499AB;}
+ .d2-3125322966 .background-color-N4{background-color:#CFD2DD;}
+ .d2-3125322966 .background-color-N5{background-color:#DEE1EB;}
+ .d2-3125322966 .background-color-N6{background-color:#EEF1F8;}
+ .d2-3125322966 .background-color-N7{background-color:#FFFFFF;}
+ .d2-3125322966 .background-color-B1{background-color:#0D32B2;}
+ .d2-3125322966 .background-color-B2{background-color:#0D32B2;}
+ .d2-3125322966 .background-color-B3{background-color:#E3E9FD;}
+ .d2-3125322966 .background-color-B4{background-color:#E3E9FD;}
+ .d2-3125322966 .background-color-B5{background-color:#EDF0FD;}
+ .d2-3125322966 .background-color-B6{background-color:#F7F8FE;}
+ .d2-3125322966 .background-color-AA2{background-color:#4A6FF3;}
+ .d2-3125322966 .background-color-AA4{background-color:#EDF0FD;}
+ .d2-3125322966 .background-color-AA5{background-color:#F7F8FE;}
+ .d2-3125322966 .background-color-AB4{background-color:#EDF0FD;}
+ .d2-3125322966 .background-color-AB5{background-color:#F7F8FE;}
+ .d2-3125322966 .color-N1{color:#0A0F25;}
+ .d2-3125322966 .color-N2{color:#676C7E;}
+ .d2-3125322966 .color-N3{color:#9499AB;}
+ .d2-3125322966 .color-N4{color:#CFD2DD;}
+ .d2-3125322966 .color-N5{color:#DEE1EB;}
+ .d2-3125322966 .color-N6{color:#EEF1F8;}
+ .d2-3125322966 .color-N7{color:#FFFFFF;}
+ .d2-3125322966 .color-B1{color:#0D32B2;}
+ .d2-3125322966 .color-B2{color:#0D32B2;}
+ .d2-3125322966 .color-B3{color:#E3E9FD;}
+ .d2-3125322966 .color-B4{color:#E3E9FD;}
+ .d2-3125322966 .color-B5{color:#EDF0FD;}
+ .d2-3125322966 .color-B6{color:#F7F8FE;}
+ .d2-3125322966 .color-AA2{color:#4A6FF3;}
+ .d2-3125322966 .color-AA4{color:#EDF0FD;}
+ .d2-3125322966 .color-AA5{color:#F7F8FE;}
+ .d2-3125322966 .color-AB4{color:#EDF0FD;}
+ .d2-3125322966 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>
@@ -104,8 +104,8 @@
- 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 none arrow triangle diamond diamond filled cf-many cf-many-required cf-one cf-one-required
-
+ 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 none arrow triangle diamond diamond filled cf-many cf-many-required cf-one cf-one-required
+
diff --git a/d2renderers/d2sketch/testdata/arrowheads_dark/sketch.exp.svg b/d2renderers/d2sketch/testdata/arrowheads_dark/sketch.exp.svg
index 196159b23..5446bdac3 100644
--- a/d2renderers/d2sketch/testdata/arrowheads_dark/sketch.exp.svg
+++ b/d2renderers/d2sketch/testdata/arrowheads_dark/sketch.exp.svg
@@ -1,17 +1,17 @@
-
+ .d2-3125322966 .fill-N1{fill:#CDD6F4;}
+ .d2-3125322966 .fill-N2{fill:#BAC2DE;}
+ .d2-3125322966 .fill-N3{fill:#A6ADC8;}
+ .d2-3125322966 .fill-N4{fill:#585B70;}
+ .d2-3125322966 .fill-N5{fill:#45475A;}
+ .d2-3125322966 .fill-N6{fill:#313244;}
+ .d2-3125322966 .fill-N7{fill:#1E1E2E;}
+ .d2-3125322966 .fill-B1{fill:#CBA6f7;}
+ .d2-3125322966 .fill-B2{fill:#CBA6f7;}
+ .d2-3125322966 .fill-B3{fill:#6C7086;}
+ .d2-3125322966 .fill-B4{fill:#585B70;}
+ .d2-3125322966 .fill-B5{fill:#45475A;}
+ .d2-3125322966 .fill-B6{fill:#313244;}
+ .d2-3125322966 .fill-AA2{fill:#f38BA8;}
+ .d2-3125322966 .fill-AA4{fill:#45475A;}
+ .d2-3125322966 .fill-AA5{fill:#313244;}
+ .d2-3125322966 .fill-AB4{fill:#45475A;}
+ .d2-3125322966 .fill-AB5{fill:#313244;}
+ .d2-3125322966 .stroke-N1{stroke:#CDD6F4;}
+ .d2-3125322966 .stroke-N2{stroke:#BAC2DE;}
+ .d2-3125322966 .stroke-N3{stroke:#A6ADC8;}
+ .d2-3125322966 .stroke-N4{stroke:#585B70;}
+ .d2-3125322966 .stroke-N5{stroke:#45475A;}
+ .d2-3125322966 .stroke-N6{stroke:#313244;}
+ .d2-3125322966 .stroke-N7{stroke:#1E1E2E;}
+ .d2-3125322966 .stroke-B1{stroke:#CBA6f7;}
+ .d2-3125322966 .stroke-B2{stroke:#CBA6f7;}
+ .d2-3125322966 .stroke-B3{stroke:#6C7086;}
+ .d2-3125322966 .stroke-B4{stroke:#585B70;}
+ .d2-3125322966 .stroke-B5{stroke:#45475A;}
+ .d2-3125322966 .stroke-B6{stroke:#313244;}
+ .d2-3125322966 .stroke-AA2{stroke:#f38BA8;}
+ .d2-3125322966 .stroke-AA4{stroke:#45475A;}
+ .d2-3125322966 .stroke-AA5{stroke:#313244;}
+ .d2-3125322966 .stroke-AB4{stroke:#45475A;}
+ .d2-3125322966 .stroke-AB5{stroke:#313244;}
+ .d2-3125322966 .background-color-N1{background-color:#CDD6F4;}
+ .d2-3125322966 .background-color-N2{background-color:#BAC2DE;}
+ .d2-3125322966 .background-color-N3{background-color:#A6ADC8;}
+ .d2-3125322966 .background-color-N4{background-color:#585B70;}
+ .d2-3125322966 .background-color-N5{background-color:#45475A;}
+ .d2-3125322966 .background-color-N6{background-color:#313244;}
+ .d2-3125322966 .background-color-N7{background-color:#1E1E2E;}
+ .d2-3125322966 .background-color-B1{background-color:#CBA6f7;}
+ .d2-3125322966 .background-color-B2{background-color:#CBA6f7;}
+ .d2-3125322966 .background-color-B3{background-color:#6C7086;}
+ .d2-3125322966 .background-color-B4{background-color:#585B70;}
+ .d2-3125322966 .background-color-B5{background-color:#45475A;}
+ .d2-3125322966 .background-color-B6{background-color:#313244;}
+ .d2-3125322966 .background-color-AA2{background-color:#f38BA8;}
+ .d2-3125322966 .background-color-AA4{background-color:#45475A;}
+ .d2-3125322966 .background-color-AA5{background-color:#313244;}
+ .d2-3125322966 .background-color-AB4{background-color:#45475A;}
+ .d2-3125322966 .background-color-AB5{background-color:#313244;}
+ .d2-3125322966 .color-N1{color:#CDD6F4;}
+ .d2-3125322966 .color-N2{color:#BAC2DE;}
+ .d2-3125322966 .color-N3{color:#A6ADC8;}
+ .d2-3125322966 .color-N4{color:#585B70;}
+ .d2-3125322966 .color-N5{color:#45475A;}
+ .d2-3125322966 .color-N6{color:#313244;}
+ .d2-3125322966 .color-N7{color:#1E1E2E;}
+ .d2-3125322966 .color-B1{color:#CBA6f7;}
+ .d2-3125322966 .color-B2{color:#CBA6f7;}
+ .d2-3125322966 .color-B3{color:#6C7086;}
+ .d2-3125322966 .color-B4{color:#585B70;}
+ .d2-3125322966 .color-B5{color:#45475A;}
+ .d2-3125322966 .color-B6{color:#313244;}
+ .d2-3125322966 .color-AA2{color:#f38BA8;}
+ .d2-3125322966 .color-AA4{color:#45475A;}
+ .d2-3125322966 .color-AA5{color:#313244;}
+ .d2-3125322966 .color-AB4{color:#45475A;}
+ .d2-3125322966 .color-AB5{color:#313244;}.appendix text.text{fill:#CDD6F4}.md{--color-fg-default:#CDD6F4;--color-fg-muted:#BAC2DE;--color-fg-subtle:#A6ADC8;--color-canvas-default:#1E1E2E;--color-canvas-subtle:#313244;--color-border-default:#CBA6f7;--color-border-muted:#CBA6f7;--color-neutral-muted:#313244;--color-accent-fg:#CBA6f7;--color-accent-emphasis:#CBA6f7;--color-attention-subtle:#BAC2DE;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-B2{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-B3{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-B4{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-B5{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B6{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-AA2{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-AA4{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-AA5{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-AB4{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-AB5{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N1{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N2{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N5{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N6{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N7{fill:url(#streaks-darker);mix-blend-mode:lighten}.light-code{display: none}.dark-code{display: block}]]>
- 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 none arrow triangle diamond diamond filled cf-many cf-many-required cf-one cf-one-required
-
+ 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 none arrow triangle diamond diamond filled cf-many cf-many-required cf-one cf-one-required
+
diff --git a/d2renderers/d2sketch/testdata/basic/sketch.exp.svg b/d2renderers/d2sketch/testdata/basic/sketch.exp.svg
index b049bc765..baf9595e8 100644
--- a/d2renderers/d2sketch/testdata/basic/sketch.exp.svg
+++ b/d2renderers/d2sketch/testdata/basic/sketch.exp.svg
@@ -1,10 +1,10 @@
-
+ .d2-1784090246 .fill-N1{fill:#0A0F25;}
+ .d2-1784090246 .fill-N2{fill:#676C7E;}
+ .d2-1784090246 .fill-N3{fill:#9499AB;}
+ .d2-1784090246 .fill-N4{fill:#CFD2DD;}
+ .d2-1784090246 .fill-N5{fill:#DEE1EB;}
+ .d2-1784090246 .fill-N6{fill:#EEF1F8;}
+ .d2-1784090246 .fill-N7{fill:#FFFFFF;}
+ .d2-1784090246 .fill-B1{fill:#0D32B2;}
+ .d2-1784090246 .fill-B2{fill:#0D32B2;}
+ .d2-1784090246 .fill-B3{fill:#E3E9FD;}
+ .d2-1784090246 .fill-B4{fill:#E3E9FD;}
+ .d2-1784090246 .fill-B5{fill:#EDF0FD;}
+ .d2-1784090246 .fill-B6{fill:#F7F8FE;}
+ .d2-1784090246 .fill-AA2{fill:#4A6FF3;}
+ .d2-1784090246 .fill-AA4{fill:#EDF0FD;}
+ .d2-1784090246 .fill-AA5{fill:#F7F8FE;}
+ .d2-1784090246 .fill-AB4{fill:#EDF0FD;}
+ .d2-1784090246 .fill-AB5{fill:#F7F8FE;}
+ .d2-1784090246 .stroke-N1{stroke:#0A0F25;}
+ .d2-1784090246 .stroke-N2{stroke:#676C7E;}
+ .d2-1784090246 .stroke-N3{stroke:#9499AB;}
+ .d2-1784090246 .stroke-N4{stroke:#CFD2DD;}
+ .d2-1784090246 .stroke-N5{stroke:#DEE1EB;}
+ .d2-1784090246 .stroke-N6{stroke:#EEF1F8;}
+ .d2-1784090246 .stroke-N7{stroke:#FFFFFF;}
+ .d2-1784090246 .stroke-B1{stroke:#0D32B2;}
+ .d2-1784090246 .stroke-B2{stroke:#0D32B2;}
+ .d2-1784090246 .stroke-B3{stroke:#E3E9FD;}
+ .d2-1784090246 .stroke-B4{stroke:#E3E9FD;}
+ .d2-1784090246 .stroke-B5{stroke:#EDF0FD;}
+ .d2-1784090246 .stroke-B6{stroke:#F7F8FE;}
+ .d2-1784090246 .stroke-AA2{stroke:#4A6FF3;}
+ .d2-1784090246 .stroke-AA4{stroke:#EDF0FD;}
+ .d2-1784090246 .stroke-AA5{stroke:#F7F8FE;}
+ .d2-1784090246 .stroke-AB4{stroke:#EDF0FD;}
+ .d2-1784090246 .stroke-AB5{stroke:#F7F8FE;}
+ .d2-1784090246 .background-color-N1{background-color:#0A0F25;}
+ .d2-1784090246 .background-color-N2{background-color:#676C7E;}
+ .d2-1784090246 .background-color-N3{background-color:#9499AB;}
+ .d2-1784090246 .background-color-N4{background-color:#CFD2DD;}
+ .d2-1784090246 .background-color-N5{background-color:#DEE1EB;}
+ .d2-1784090246 .background-color-N6{background-color:#EEF1F8;}
+ .d2-1784090246 .background-color-N7{background-color:#FFFFFF;}
+ .d2-1784090246 .background-color-B1{background-color:#0D32B2;}
+ .d2-1784090246 .background-color-B2{background-color:#0D32B2;}
+ .d2-1784090246 .background-color-B3{background-color:#E3E9FD;}
+ .d2-1784090246 .background-color-B4{background-color:#E3E9FD;}
+ .d2-1784090246 .background-color-B5{background-color:#EDF0FD;}
+ .d2-1784090246 .background-color-B6{background-color:#F7F8FE;}
+ .d2-1784090246 .background-color-AA2{background-color:#4A6FF3;}
+ .d2-1784090246 .background-color-AA4{background-color:#EDF0FD;}
+ .d2-1784090246 .background-color-AA5{background-color:#F7F8FE;}
+ .d2-1784090246 .background-color-AB4{background-color:#EDF0FD;}
+ .d2-1784090246 .background-color-AB5{background-color:#F7F8FE;}
+ .d2-1784090246 .color-N1{color:#0A0F25;}
+ .d2-1784090246 .color-N2{color:#676C7E;}
+ .d2-1784090246 .color-N3{color:#9499AB;}
+ .d2-1784090246 .color-N4{color:#CFD2DD;}
+ .d2-1784090246 .color-N5{color:#DEE1EB;}
+ .d2-1784090246 .color-N6{color:#EEF1F8;}
+ .d2-1784090246 .color-N7{color:#FFFFFF;}
+ .d2-1784090246 .color-B1{color:#0D32B2;}
+ .d2-1784090246 .color-B2{color:#0D32B2;}
+ .d2-1784090246 .color-B3{color:#E3E9FD;}
+ .d2-1784090246 .color-B4{color:#E3E9FD;}
+ .d2-1784090246 .color-B5{color:#EDF0FD;}
+ .d2-1784090246 .color-B6{color:#F7F8FE;}
+ .d2-1784090246 .color-AA2{color:#4A6FF3;}
+ .d2-1784090246 .color-AA4{color:#EDF0FD;}
+ .d2-1784090246 .color-AA5{color:#F7F8FE;}
+ .d2-1784090246 .color-AB4{color:#EDF0FD;}
+ .d2-1784090246 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>
@@ -104,7 +104,7 @@
- winter summer snow sun
+ winter summer snow sun
\ No newline at end of file
diff --git a/d2renderers/d2sketch/testdata/child_to_child_dark/sketch.exp.svg b/d2renderers/d2sketch/testdata/child_to_child_dark/sketch.exp.svg
index 89ec8acbe..1b01927f1 100644
--- a/d2renderers/d2sketch/testdata/child_to_child_dark/sketch.exp.svg
+++ b/d2renderers/d2sketch/testdata/child_to_child_dark/sketch.exp.svg
@@ -1,17 +1,17 @@
-
+ .d2-1784090246 .fill-N1{fill:#CDD6F4;}
+ .d2-1784090246 .fill-N2{fill:#BAC2DE;}
+ .d2-1784090246 .fill-N3{fill:#A6ADC8;}
+ .d2-1784090246 .fill-N4{fill:#585B70;}
+ .d2-1784090246 .fill-N5{fill:#45475A;}
+ .d2-1784090246 .fill-N6{fill:#313244;}
+ .d2-1784090246 .fill-N7{fill:#1E1E2E;}
+ .d2-1784090246 .fill-B1{fill:#CBA6f7;}
+ .d2-1784090246 .fill-B2{fill:#CBA6f7;}
+ .d2-1784090246 .fill-B3{fill:#6C7086;}
+ .d2-1784090246 .fill-B4{fill:#585B70;}
+ .d2-1784090246 .fill-B5{fill:#45475A;}
+ .d2-1784090246 .fill-B6{fill:#313244;}
+ .d2-1784090246 .fill-AA2{fill:#f38BA8;}
+ .d2-1784090246 .fill-AA4{fill:#45475A;}
+ .d2-1784090246 .fill-AA5{fill:#313244;}
+ .d2-1784090246 .fill-AB4{fill:#45475A;}
+ .d2-1784090246 .fill-AB5{fill:#313244;}
+ .d2-1784090246 .stroke-N1{stroke:#CDD6F4;}
+ .d2-1784090246 .stroke-N2{stroke:#BAC2DE;}
+ .d2-1784090246 .stroke-N3{stroke:#A6ADC8;}
+ .d2-1784090246 .stroke-N4{stroke:#585B70;}
+ .d2-1784090246 .stroke-N5{stroke:#45475A;}
+ .d2-1784090246 .stroke-N6{stroke:#313244;}
+ .d2-1784090246 .stroke-N7{stroke:#1E1E2E;}
+ .d2-1784090246 .stroke-B1{stroke:#CBA6f7;}
+ .d2-1784090246 .stroke-B2{stroke:#CBA6f7;}
+ .d2-1784090246 .stroke-B3{stroke:#6C7086;}
+ .d2-1784090246 .stroke-B4{stroke:#585B70;}
+ .d2-1784090246 .stroke-B5{stroke:#45475A;}
+ .d2-1784090246 .stroke-B6{stroke:#313244;}
+ .d2-1784090246 .stroke-AA2{stroke:#f38BA8;}
+ .d2-1784090246 .stroke-AA4{stroke:#45475A;}
+ .d2-1784090246 .stroke-AA5{stroke:#313244;}
+ .d2-1784090246 .stroke-AB4{stroke:#45475A;}
+ .d2-1784090246 .stroke-AB5{stroke:#313244;}
+ .d2-1784090246 .background-color-N1{background-color:#CDD6F4;}
+ .d2-1784090246 .background-color-N2{background-color:#BAC2DE;}
+ .d2-1784090246 .background-color-N3{background-color:#A6ADC8;}
+ .d2-1784090246 .background-color-N4{background-color:#585B70;}
+ .d2-1784090246 .background-color-N5{background-color:#45475A;}
+ .d2-1784090246 .background-color-N6{background-color:#313244;}
+ .d2-1784090246 .background-color-N7{background-color:#1E1E2E;}
+ .d2-1784090246 .background-color-B1{background-color:#CBA6f7;}
+ .d2-1784090246 .background-color-B2{background-color:#CBA6f7;}
+ .d2-1784090246 .background-color-B3{background-color:#6C7086;}
+ .d2-1784090246 .background-color-B4{background-color:#585B70;}
+ .d2-1784090246 .background-color-B5{background-color:#45475A;}
+ .d2-1784090246 .background-color-B6{background-color:#313244;}
+ .d2-1784090246 .background-color-AA2{background-color:#f38BA8;}
+ .d2-1784090246 .background-color-AA4{background-color:#45475A;}
+ .d2-1784090246 .background-color-AA5{background-color:#313244;}
+ .d2-1784090246 .background-color-AB4{background-color:#45475A;}
+ .d2-1784090246 .background-color-AB5{background-color:#313244;}
+ .d2-1784090246 .color-N1{color:#CDD6F4;}
+ .d2-1784090246 .color-N2{color:#BAC2DE;}
+ .d2-1784090246 .color-N3{color:#A6ADC8;}
+ .d2-1784090246 .color-N4{color:#585B70;}
+ .d2-1784090246 .color-N5{color:#45475A;}
+ .d2-1784090246 .color-N6{color:#313244;}
+ .d2-1784090246 .color-N7{color:#1E1E2E;}
+ .d2-1784090246 .color-B1{color:#CBA6f7;}
+ .d2-1784090246 .color-B2{color:#CBA6f7;}
+ .d2-1784090246 .color-B3{color:#6C7086;}
+ .d2-1784090246 .color-B4{color:#585B70;}
+ .d2-1784090246 .color-B5{color:#45475A;}
+ .d2-1784090246 .color-B6{color:#313244;}
+ .d2-1784090246 .color-AA2{color:#f38BA8;}
+ .d2-1784090246 .color-AA4{color:#45475A;}
+ .d2-1784090246 .color-AA5{color:#313244;}
+ .d2-1784090246 .color-AB4{color:#45475A;}
+ .d2-1784090246 .color-AB5{color:#313244;}.appendix text.text{fill:#CDD6F4}.md{--color-fg-default:#CDD6F4;--color-fg-muted:#BAC2DE;--color-fg-subtle:#A6ADC8;--color-canvas-default:#1E1E2E;--color-canvas-subtle:#313244;--color-border-default:#CBA6f7;--color-border-muted:#CBA6f7;--color-neutral-muted:#313244;--color-accent-fg:#CBA6f7;--color-accent-emphasis:#CBA6f7;--color-attention-subtle:#BAC2DE;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-B2{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-B3{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-B4{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-B5{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B6{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-AA2{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-AA4{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-AA5{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-AB4{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-AB5{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N1{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N2{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N5{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N6{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N7{fill:url(#streaks-darker);mix-blend-mode:lighten}.light-code{display: none}.dark-code{display: block}]]>
- winter summer snow sun
+ winter summer snow sun
\ No newline at end of file
diff --git a/d2renderers/d2sketch/testdata/class/sketch.exp.svg b/d2renderers/d2sketch/testdata/class/sketch.exp.svg
index 04819fff2..97ddef527 100644
--- a/d2renderers/d2sketch/testdata/class/sketch.exp.svg
+++ b/d2renderers/d2sketch/testdata/class/sketch.exp.svg
@@ -1,10 +1,10 @@
-
+ .d2-1320785676 .fill-N1{fill:#0A0F25;}
+ .d2-1320785676 .fill-N2{fill:#676C7E;}
+ .d2-1320785676 .fill-N3{fill:#9499AB;}
+ .d2-1320785676 .fill-N4{fill:#CFD2DD;}
+ .d2-1320785676 .fill-N5{fill:#DEE1EB;}
+ .d2-1320785676 .fill-N6{fill:#EEF1F8;}
+ .d2-1320785676 .fill-N7{fill:#FFFFFF;}
+ .d2-1320785676 .fill-B1{fill:#0D32B2;}
+ .d2-1320785676 .fill-B2{fill:#0D32B2;}
+ .d2-1320785676 .fill-B3{fill:#E3E9FD;}
+ .d2-1320785676 .fill-B4{fill:#E3E9FD;}
+ .d2-1320785676 .fill-B5{fill:#EDF0FD;}
+ .d2-1320785676 .fill-B6{fill:#F7F8FE;}
+ .d2-1320785676 .fill-AA2{fill:#4A6FF3;}
+ .d2-1320785676 .fill-AA4{fill:#EDF0FD;}
+ .d2-1320785676 .fill-AA5{fill:#F7F8FE;}
+ .d2-1320785676 .fill-AB4{fill:#EDF0FD;}
+ .d2-1320785676 .fill-AB5{fill:#F7F8FE;}
+ .d2-1320785676 .stroke-N1{stroke:#0A0F25;}
+ .d2-1320785676 .stroke-N2{stroke:#676C7E;}
+ .d2-1320785676 .stroke-N3{stroke:#9499AB;}
+ .d2-1320785676 .stroke-N4{stroke:#CFD2DD;}
+ .d2-1320785676 .stroke-N5{stroke:#DEE1EB;}
+ .d2-1320785676 .stroke-N6{stroke:#EEF1F8;}
+ .d2-1320785676 .stroke-N7{stroke:#FFFFFF;}
+ .d2-1320785676 .stroke-B1{stroke:#0D32B2;}
+ .d2-1320785676 .stroke-B2{stroke:#0D32B2;}
+ .d2-1320785676 .stroke-B3{stroke:#E3E9FD;}
+ .d2-1320785676 .stroke-B4{stroke:#E3E9FD;}
+ .d2-1320785676 .stroke-B5{stroke:#EDF0FD;}
+ .d2-1320785676 .stroke-B6{stroke:#F7F8FE;}
+ .d2-1320785676 .stroke-AA2{stroke:#4A6FF3;}
+ .d2-1320785676 .stroke-AA4{stroke:#EDF0FD;}
+ .d2-1320785676 .stroke-AA5{stroke:#F7F8FE;}
+ .d2-1320785676 .stroke-AB4{stroke:#EDF0FD;}
+ .d2-1320785676 .stroke-AB5{stroke:#F7F8FE;}
+ .d2-1320785676 .background-color-N1{background-color:#0A0F25;}
+ .d2-1320785676 .background-color-N2{background-color:#676C7E;}
+ .d2-1320785676 .background-color-N3{background-color:#9499AB;}
+ .d2-1320785676 .background-color-N4{background-color:#CFD2DD;}
+ .d2-1320785676 .background-color-N5{background-color:#DEE1EB;}
+ .d2-1320785676 .background-color-N6{background-color:#EEF1F8;}
+ .d2-1320785676 .background-color-N7{background-color:#FFFFFF;}
+ .d2-1320785676 .background-color-B1{background-color:#0D32B2;}
+ .d2-1320785676 .background-color-B2{background-color:#0D32B2;}
+ .d2-1320785676 .background-color-B3{background-color:#E3E9FD;}
+ .d2-1320785676 .background-color-B4{background-color:#E3E9FD;}
+ .d2-1320785676 .background-color-B5{background-color:#EDF0FD;}
+ .d2-1320785676 .background-color-B6{background-color:#F7F8FE;}
+ .d2-1320785676 .background-color-AA2{background-color:#4A6FF3;}
+ .d2-1320785676 .background-color-AA4{background-color:#EDF0FD;}
+ .d2-1320785676 .background-color-AA5{background-color:#F7F8FE;}
+ .d2-1320785676 .background-color-AB4{background-color:#EDF0FD;}
+ .d2-1320785676 .background-color-AB5{background-color:#F7F8FE;}
+ .d2-1320785676 .color-N1{color:#0A0F25;}
+ .d2-1320785676 .color-N2{color:#676C7E;}
+ .d2-1320785676 .color-N3{color:#9499AB;}
+ .d2-1320785676 .color-N4{color:#CFD2DD;}
+ .d2-1320785676 .color-N5{color:#DEE1EB;}
+ .d2-1320785676 .color-N6{color:#EEF1F8;}
+ .d2-1320785676 .color-N7{color:#FFFFFF;}
+ .d2-1320785676 .color-B1{color:#0D32B2;}
+ .d2-1320785676 .color-B2{color:#0D32B2;}
+ .d2-1320785676 .color-B3{color:#E3E9FD;}
+ .d2-1320785676 .color-B4{color:#E3E9FD;}
+ .d2-1320785676 .color-B5{color:#EDF0FD;}
+ .d2-1320785676 .color-B6{color:#F7F8FE;}
+ .d2-1320785676 .color-AA2{color:#4A6FF3;}
+ .d2-1320785676 .color-AA4{color:#EDF0FD;}
+ .d2-1320785676 .color-AA5{color:#F7F8FE;}
+ .d2-1320785676 .color-AB4{color:#EDF0FD;}
+ .d2-1320785676 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>
@@ -104,7 +104,7 @@
- a b hello
+ a b hello
\ No newline at end of file
diff --git a/d2renderers/d2sketch/testdata/connection_label_dark/sketch.exp.svg b/d2renderers/d2sketch/testdata/connection_label_dark/sketch.exp.svg
index 214cb8874..25a5bbf80 100644
--- a/d2renderers/d2sketch/testdata/connection_label_dark/sketch.exp.svg
+++ b/d2renderers/d2sketch/testdata/connection_label_dark/sketch.exp.svg
@@ -1,17 +1,17 @@
-
+ .d2-1320785676 .fill-N1{fill:#CDD6F4;}
+ .d2-1320785676 .fill-N2{fill:#BAC2DE;}
+ .d2-1320785676 .fill-N3{fill:#A6ADC8;}
+ .d2-1320785676 .fill-N4{fill:#585B70;}
+ .d2-1320785676 .fill-N5{fill:#45475A;}
+ .d2-1320785676 .fill-N6{fill:#313244;}
+ .d2-1320785676 .fill-N7{fill:#1E1E2E;}
+ .d2-1320785676 .fill-B1{fill:#CBA6f7;}
+ .d2-1320785676 .fill-B2{fill:#CBA6f7;}
+ .d2-1320785676 .fill-B3{fill:#6C7086;}
+ .d2-1320785676 .fill-B4{fill:#585B70;}
+ .d2-1320785676 .fill-B5{fill:#45475A;}
+ .d2-1320785676 .fill-B6{fill:#313244;}
+ .d2-1320785676 .fill-AA2{fill:#f38BA8;}
+ .d2-1320785676 .fill-AA4{fill:#45475A;}
+ .d2-1320785676 .fill-AA5{fill:#313244;}
+ .d2-1320785676 .fill-AB4{fill:#45475A;}
+ .d2-1320785676 .fill-AB5{fill:#313244;}
+ .d2-1320785676 .stroke-N1{stroke:#CDD6F4;}
+ .d2-1320785676 .stroke-N2{stroke:#BAC2DE;}
+ .d2-1320785676 .stroke-N3{stroke:#A6ADC8;}
+ .d2-1320785676 .stroke-N4{stroke:#585B70;}
+ .d2-1320785676 .stroke-N5{stroke:#45475A;}
+ .d2-1320785676 .stroke-N6{stroke:#313244;}
+ .d2-1320785676 .stroke-N7{stroke:#1E1E2E;}
+ .d2-1320785676 .stroke-B1{stroke:#CBA6f7;}
+ .d2-1320785676 .stroke-B2{stroke:#CBA6f7;}
+ .d2-1320785676 .stroke-B3{stroke:#6C7086;}
+ .d2-1320785676 .stroke-B4{stroke:#585B70;}
+ .d2-1320785676 .stroke-B5{stroke:#45475A;}
+ .d2-1320785676 .stroke-B6{stroke:#313244;}
+ .d2-1320785676 .stroke-AA2{stroke:#f38BA8;}
+ .d2-1320785676 .stroke-AA4{stroke:#45475A;}
+ .d2-1320785676 .stroke-AA5{stroke:#313244;}
+ .d2-1320785676 .stroke-AB4{stroke:#45475A;}
+ .d2-1320785676 .stroke-AB5{stroke:#313244;}
+ .d2-1320785676 .background-color-N1{background-color:#CDD6F4;}
+ .d2-1320785676 .background-color-N2{background-color:#BAC2DE;}
+ .d2-1320785676 .background-color-N3{background-color:#A6ADC8;}
+ .d2-1320785676 .background-color-N4{background-color:#585B70;}
+ .d2-1320785676 .background-color-N5{background-color:#45475A;}
+ .d2-1320785676 .background-color-N6{background-color:#313244;}
+ .d2-1320785676 .background-color-N7{background-color:#1E1E2E;}
+ .d2-1320785676 .background-color-B1{background-color:#CBA6f7;}
+ .d2-1320785676 .background-color-B2{background-color:#CBA6f7;}
+ .d2-1320785676 .background-color-B3{background-color:#6C7086;}
+ .d2-1320785676 .background-color-B4{background-color:#585B70;}
+ .d2-1320785676 .background-color-B5{background-color:#45475A;}
+ .d2-1320785676 .background-color-B6{background-color:#313244;}
+ .d2-1320785676 .background-color-AA2{background-color:#f38BA8;}
+ .d2-1320785676 .background-color-AA4{background-color:#45475A;}
+ .d2-1320785676 .background-color-AA5{background-color:#313244;}
+ .d2-1320785676 .background-color-AB4{background-color:#45475A;}
+ .d2-1320785676 .background-color-AB5{background-color:#313244;}
+ .d2-1320785676 .color-N1{color:#CDD6F4;}
+ .d2-1320785676 .color-N2{color:#BAC2DE;}
+ .d2-1320785676 .color-N3{color:#A6ADC8;}
+ .d2-1320785676 .color-N4{color:#585B70;}
+ .d2-1320785676 .color-N5{color:#45475A;}
+ .d2-1320785676 .color-N6{color:#313244;}
+ .d2-1320785676 .color-N7{color:#1E1E2E;}
+ .d2-1320785676 .color-B1{color:#CBA6f7;}
+ .d2-1320785676 .color-B2{color:#CBA6f7;}
+ .d2-1320785676 .color-B3{color:#6C7086;}
+ .d2-1320785676 .color-B4{color:#585B70;}
+ .d2-1320785676 .color-B5{color:#45475A;}
+ .d2-1320785676 .color-B6{color:#313244;}
+ .d2-1320785676 .color-AA2{color:#f38BA8;}
+ .d2-1320785676 .color-AA4{color:#45475A;}
+ .d2-1320785676 .color-AA5{color:#313244;}
+ .d2-1320785676 .color-AB4{color:#45475A;}
+ .d2-1320785676 .color-AB5{color:#313244;}.appendix text.text{fill:#CDD6F4}.md{--color-fg-default:#CDD6F4;--color-fg-muted:#BAC2DE;--color-fg-subtle:#A6ADC8;--color-canvas-default:#1E1E2E;--color-canvas-subtle:#313244;--color-border-default:#CBA6f7;--color-border-muted:#CBA6f7;--color-neutral-muted:#313244;--color-accent-fg:#CBA6f7;--color-accent-emphasis:#CBA6f7;--color-attention-subtle:#BAC2DE;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-B2{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-B3{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-B4{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-B5{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B6{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-AA2{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-AA4{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-AA5{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-AB4{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-AB5{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N1{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N2{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N5{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N6{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N7{fill:url(#streaks-darker);mix-blend-mode:lighten}.light-code{display: none}.dark-code{display: block}]]>
- a b hello
+ a b hello
\ No newline at end of file
diff --git a/d2renderers/d2sketch/testdata/crows_feet/sketch.exp.svg b/d2renderers/d2sketch/testdata/crows_feet/sketch.exp.svg
index 5ef2021ae..814b7c71a 100644
--- a/d2renderers/d2sketch/testdata/crows_feet/sketch.exp.svg
+++ b/d2renderers/d2sketch/testdata/crows_feet/sketch.exp.svg
@@ -1,10 +1,10 @@
-
+ .d2-124739280 .fill-N1{fill:#0A0F25;}
+ .d2-124739280 .fill-N2{fill:#676C7E;}
+ .d2-124739280 .fill-N3{fill:#9499AB;}
+ .d2-124739280 .fill-N4{fill:#CFD2DD;}
+ .d2-124739280 .fill-N5{fill:#DEE1EB;}
+ .d2-124739280 .fill-N6{fill:#EEF1F8;}
+ .d2-124739280 .fill-N7{fill:#FFFFFF;}
+ .d2-124739280 .fill-B1{fill:#0D32B2;}
+ .d2-124739280 .fill-B2{fill:#0D32B2;}
+ .d2-124739280 .fill-B3{fill:#E3E9FD;}
+ .d2-124739280 .fill-B4{fill:#E3E9FD;}
+ .d2-124739280 .fill-B5{fill:#EDF0FD;}
+ .d2-124739280 .fill-B6{fill:#F7F8FE;}
+ .d2-124739280 .fill-AA2{fill:#4A6FF3;}
+ .d2-124739280 .fill-AA4{fill:#EDF0FD;}
+ .d2-124739280 .fill-AA5{fill:#F7F8FE;}
+ .d2-124739280 .fill-AB4{fill:#EDF0FD;}
+ .d2-124739280 .fill-AB5{fill:#F7F8FE;}
+ .d2-124739280 .stroke-N1{stroke:#0A0F25;}
+ .d2-124739280 .stroke-N2{stroke:#676C7E;}
+ .d2-124739280 .stroke-N3{stroke:#9499AB;}
+ .d2-124739280 .stroke-N4{stroke:#CFD2DD;}
+ .d2-124739280 .stroke-N5{stroke:#DEE1EB;}
+ .d2-124739280 .stroke-N6{stroke:#EEF1F8;}
+ .d2-124739280 .stroke-N7{stroke:#FFFFFF;}
+ .d2-124739280 .stroke-B1{stroke:#0D32B2;}
+ .d2-124739280 .stroke-B2{stroke:#0D32B2;}
+ .d2-124739280 .stroke-B3{stroke:#E3E9FD;}
+ .d2-124739280 .stroke-B4{stroke:#E3E9FD;}
+ .d2-124739280 .stroke-B5{stroke:#EDF0FD;}
+ .d2-124739280 .stroke-B6{stroke:#F7F8FE;}
+ .d2-124739280 .stroke-AA2{stroke:#4A6FF3;}
+ .d2-124739280 .stroke-AA4{stroke:#EDF0FD;}
+ .d2-124739280 .stroke-AA5{stroke:#F7F8FE;}
+ .d2-124739280 .stroke-AB4{stroke:#EDF0FD;}
+ .d2-124739280 .stroke-AB5{stroke:#F7F8FE;}
+ .d2-124739280 .background-color-N1{background-color:#0A0F25;}
+ .d2-124739280 .background-color-N2{background-color:#676C7E;}
+ .d2-124739280 .background-color-N3{background-color:#9499AB;}
+ .d2-124739280 .background-color-N4{background-color:#CFD2DD;}
+ .d2-124739280 .background-color-N5{background-color:#DEE1EB;}
+ .d2-124739280 .background-color-N6{background-color:#EEF1F8;}
+ .d2-124739280 .background-color-N7{background-color:#FFFFFF;}
+ .d2-124739280 .background-color-B1{background-color:#0D32B2;}
+ .d2-124739280 .background-color-B2{background-color:#0D32B2;}
+ .d2-124739280 .background-color-B3{background-color:#E3E9FD;}
+ .d2-124739280 .background-color-B4{background-color:#E3E9FD;}
+ .d2-124739280 .background-color-B5{background-color:#EDF0FD;}
+ .d2-124739280 .background-color-B6{background-color:#F7F8FE;}
+ .d2-124739280 .background-color-AA2{background-color:#4A6FF3;}
+ .d2-124739280 .background-color-AA4{background-color:#EDF0FD;}
+ .d2-124739280 .background-color-AA5{background-color:#F7F8FE;}
+ .d2-124739280 .background-color-AB4{background-color:#EDF0FD;}
+ .d2-124739280 .background-color-AB5{background-color:#F7F8FE;}
+ .d2-124739280 .color-N1{color:#0A0F25;}
+ .d2-124739280 .color-N2{color:#676C7E;}
+ .d2-124739280 .color-N3{color:#9499AB;}
+ .d2-124739280 .color-N4{color:#CFD2DD;}
+ .d2-124739280 .color-N5{color:#DEE1EB;}
+ .d2-124739280 .color-N6{color:#EEF1F8;}
+ .d2-124739280 .color-N7{color:#FFFFFF;}
+ .d2-124739280 .color-B1{color:#0D32B2;}
+ .d2-124739280 .color-B2{color:#0D32B2;}
+ .d2-124739280 .color-B3{color:#E3E9FD;}
+ .d2-124739280 .color-B4{color:#E3E9FD;}
+ .d2-124739280 .color-B5{color:#EDF0FD;}
+ .d2-124739280 .color-B6{color:#F7F8FE;}
+ .d2-124739280 .color-AA2{color:#4A6FF3;}
+ .d2-124739280 .color-AA4{color:#EDF0FD;}
+ .d2-124739280 .color-AA5{color:#F7F8FE;}
+ .d2-124739280 .color-AB4{color:#EDF0FD;}
+ .d2-124739280 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>
@@ -130,11 +130,11 @@
-
-
- x
-
- y
-
+
+
+ x
+
+ y
+
\ No newline at end of file
diff --git a/d2renderers/d2sketch/testdata/dots-all/sketch.exp.svg b/d2renderers/d2sketch/testdata/dots-all/sketch.exp.svg
index a464cfdb3..9e522024a 100644
--- a/d2renderers/d2sketch/testdata/dots-all/sketch.exp.svg
+++ b/d2renderers/d2sketch/testdata/dots-all/sketch.exp.svg
@@ -1,10 +1,10 @@
-
+ .d2-468447915 .fill-N1{fill:#0A0F25;}
+ .d2-468447915 .fill-N2{fill:#676C7E;}
+ .d2-468447915 .fill-N3{fill:#9499AB;}
+ .d2-468447915 .fill-N4{fill:#CFD2DD;}
+ .d2-468447915 .fill-N5{fill:#DEE1EB;}
+ .d2-468447915 .fill-N6{fill:#EEF1F8;}
+ .d2-468447915 .fill-N7{fill:#FFFFFF;}
+ .d2-468447915 .fill-B1{fill:#0D32B2;}
+ .d2-468447915 .fill-B2{fill:#0D32B2;}
+ .d2-468447915 .fill-B3{fill:#E3E9FD;}
+ .d2-468447915 .fill-B4{fill:#E3E9FD;}
+ .d2-468447915 .fill-B5{fill:#EDF0FD;}
+ .d2-468447915 .fill-B6{fill:#F7F8FE;}
+ .d2-468447915 .fill-AA2{fill:#4A6FF3;}
+ .d2-468447915 .fill-AA4{fill:#EDF0FD;}
+ .d2-468447915 .fill-AA5{fill:#F7F8FE;}
+ .d2-468447915 .fill-AB4{fill:#EDF0FD;}
+ .d2-468447915 .fill-AB5{fill:#F7F8FE;}
+ .d2-468447915 .stroke-N1{stroke:#0A0F25;}
+ .d2-468447915 .stroke-N2{stroke:#676C7E;}
+ .d2-468447915 .stroke-N3{stroke:#9499AB;}
+ .d2-468447915 .stroke-N4{stroke:#CFD2DD;}
+ .d2-468447915 .stroke-N5{stroke:#DEE1EB;}
+ .d2-468447915 .stroke-N6{stroke:#EEF1F8;}
+ .d2-468447915 .stroke-N7{stroke:#FFFFFF;}
+ .d2-468447915 .stroke-B1{stroke:#0D32B2;}
+ .d2-468447915 .stroke-B2{stroke:#0D32B2;}
+ .d2-468447915 .stroke-B3{stroke:#E3E9FD;}
+ .d2-468447915 .stroke-B4{stroke:#E3E9FD;}
+ .d2-468447915 .stroke-B5{stroke:#EDF0FD;}
+ .d2-468447915 .stroke-B6{stroke:#F7F8FE;}
+ .d2-468447915 .stroke-AA2{stroke:#4A6FF3;}
+ .d2-468447915 .stroke-AA4{stroke:#EDF0FD;}
+ .d2-468447915 .stroke-AA5{stroke:#F7F8FE;}
+ .d2-468447915 .stroke-AB4{stroke:#EDF0FD;}
+ .d2-468447915 .stroke-AB5{stroke:#F7F8FE;}
+ .d2-468447915 .background-color-N1{background-color:#0A0F25;}
+ .d2-468447915 .background-color-N2{background-color:#676C7E;}
+ .d2-468447915 .background-color-N3{background-color:#9499AB;}
+ .d2-468447915 .background-color-N4{background-color:#CFD2DD;}
+ .d2-468447915 .background-color-N5{background-color:#DEE1EB;}
+ .d2-468447915 .background-color-N6{background-color:#EEF1F8;}
+ .d2-468447915 .background-color-N7{background-color:#FFFFFF;}
+ .d2-468447915 .background-color-B1{background-color:#0D32B2;}
+ .d2-468447915 .background-color-B2{background-color:#0D32B2;}
+ .d2-468447915 .background-color-B3{background-color:#E3E9FD;}
+ .d2-468447915 .background-color-B4{background-color:#E3E9FD;}
+ .d2-468447915 .background-color-B5{background-color:#EDF0FD;}
+ .d2-468447915 .background-color-B6{background-color:#F7F8FE;}
+ .d2-468447915 .background-color-AA2{background-color:#4A6FF3;}
+ .d2-468447915 .background-color-AA4{background-color:#EDF0FD;}
+ .d2-468447915 .background-color-AA5{background-color:#F7F8FE;}
+ .d2-468447915 .background-color-AB4{background-color:#EDF0FD;}
+ .d2-468447915 .background-color-AB5{background-color:#F7F8FE;}
+ .d2-468447915 .color-N1{color:#0A0F25;}
+ .d2-468447915 .color-N2{color:#676C7E;}
+ .d2-468447915 .color-N3{color:#9499AB;}
+ .d2-468447915 .color-N4{color:#CFD2DD;}
+ .d2-468447915 .color-N5{color:#DEE1EB;}
+ .d2-468447915 .color-N6{color:#EEF1F8;}
+ .d2-468447915 .color-N7{color:#FFFFFF;}
+ .d2-468447915 .color-B1{color:#0D32B2;}
+ .d2-468447915 .color-B2{color:#0D32B2;}
+ .d2-468447915 .color-B3{color:#E3E9FD;}
+ .d2-468447915 .color-B4{color:#E3E9FD;}
+ .d2-468447915 .color-B5{color:#EDF0FD;}
+ .d2-468447915 .color-B6{color:#F7F8FE;}
+ .d2-468447915 .color-AA2{color:#4A6FF3;}
+ .d2-468447915 .color-AA4{color:#EDF0FD;}
+ .d2-468447915 .color-AA5{color:#F7F8FE;}
+ .d2-468447915 .color-AB4{color:#EDF0FD;}
+ .d2-468447915 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>
@@ -130,7 +130,7 @@
-rectangle square page parallelogram document cylinder queue package step callout stored_data person diamond oval circle hexagon cloud
+ rectangle square page parallelogram document cylinder queue package step callout stored_data person diamond oval circle hexagon cloud
\ No newline at end of file
diff --git a/d2renderers/d2sketch/testdata/dots-multiple/sketch.exp.svg b/d2renderers/d2sketch/testdata/dots-multiple/sketch.exp.svg
index e32a5ee5c..391f01ed9 100644
--- a/d2renderers/d2sketch/testdata/dots-multiple/sketch.exp.svg
+++ b/d2renderers/d2sketch/testdata/dots-multiple/sketch.exp.svg
@@ -1,10 +1,10 @@
-
+ .d2-3964724219 .fill-N1{fill:#0A0F25;}
+ .d2-3964724219 .fill-N2{fill:#676C7E;}
+ .d2-3964724219 .fill-N3{fill:#9499AB;}
+ .d2-3964724219 .fill-N4{fill:#CFD2DD;}
+ .d2-3964724219 .fill-N5{fill:#DEE1EB;}
+ .d2-3964724219 .fill-N6{fill:#EEF1F8;}
+ .d2-3964724219 .fill-N7{fill:#FFFFFF;}
+ .d2-3964724219 .fill-B1{fill:#0D32B2;}
+ .d2-3964724219 .fill-B2{fill:#0D32B2;}
+ .d2-3964724219 .fill-B3{fill:#E3E9FD;}
+ .d2-3964724219 .fill-B4{fill:#E3E9FD;}
+ .d2-3964724219 .fill-B5{fill:#EDF0FD;}
+ .d2-3964724219 .fill-B6{fill:#F7F8FE;}
+ .d2-3964724219 .fill-AA2{fill:#4A6FF3;}
+ .d2-3964724219 .fill-AA4{fill:#EDF0FD;}
+ .d2-3964724219 .fill-AA5{fill:#F7F8FE;}
+ .d2-3964724219 .fill-AB4{fill:#EDF0FD;}
+ .d2-3964724219 .fill-AB5{fill:#F7F8FE;}
+ .d2-3964724219 .stroke-N1{stroke:#0A0F25;}
+ .d2-3964724219 .stroke-N2{stroke:#676C7E;}
+ .d2-3964724219 .stroke-N3{stroke:#9499AB;}
+ .d2-3964724219 .stroke-N4{stroke:#CFD2DD;}
+ .d2-3964724219 .stroke-N5{stroke:#DEE1EB;}
+ .d2-3964724219 .stroke-N6{stroke:#EEF1F8;}
+ .d2-3964724219 .stroke-N7{stroke:#FFFFFF;}
+ .d2-3964724219 .stroke-B1{stroke:#0D32B2;}
+ .d2-3964724219 .stroke-B2{stroke:#0D32B2;}
+ .d2-3964724219 .stroke-B3{stroke:#E3E9FD;}
+ .d2-3964724219 .stroke-B4{stroke:#E3E9FD;}
+ .d2-3964724219 .stroke-B5{stroke:#EDF0FD;}
+ .d2-3964724219 .stroke-B6{stroke:#F7F8FE;}
+ .d2-3964724219 .stroke-AA2{stroke:#4A6FF3;}
+ .d2-3964724219 .stroke-AA4{stroke:#EDF0FD;}
+ .d2-3964724219 .stroke-AA5{stroke:#F7F8FE;}
+ .d2-3964724219 .stroke-AB4{stroke:#EDF0FD;}
+ .d2-3964724219 .stroke-AB5{stroke:#F7F8FE;}
+ .d2-3964724219 .background-color-N1{background-color:#0A0F25;}
+ .d2-3964724219 .background-color-N2{background-color:#676C7E;}
+ .d2-3964724219 .background-color-N3{background-color:#9499AB;}
+ .d2-3964724219 .background-color-N4{background-color:#CFD2DD;}
+ .d2-3964724219 .background-color-N5{background-color:#DEE1EB;}
+ .d2-3964724219 .background-color-N6{background-color:#EEF1F8;}
+ .d2-3964724219 .background-color-N7{background-color:#FFFFFF;}
+ .d2-3964724219 .background-color-B1{background-color:#0D32B2;}
+ .d2-3964724219 .background-color-B2{background-color:#0D32B2;}
+ .d2-3964724219 .background-color-B3{background-color:#E3E9FD;}
+ .d2-3964724219 .background-color-B4{background-color:#E3E9FD;}
+ .d2-3964724219 .background-color-B5{background-color:#EDF0FD;}
+ .d2-3964724219 .background-color-B6{background-color:#F7F8FE;}
+ .d2-3964724219 .background-color-AA2{background-color:#4A6FF3;}
+ .d2-3964724219 .background-color-AA4{background-color:#EDF0FD;}
+ .d2-3964724219 .background-color-AA5{background-color:#F7F8FE;}
+ .d2-3964724219 .background-color-AB4{background-color:#EDF0FD;}
+ .d2-3964724219 .background-color-AB5{background-color:#F7F8FE;}
+ .d2-3964724219 .color-N1{color:#0A0F25;}
+ .d2-3964724219 .color-N2{color:#676C7E;}
+ .d2-3964724219 .color-N3{color:#9499AB;}
+ .d2-3964724219 .color-N4{color:#CFD2DD;}
+ .d2-3964724219 .color-N5{color:#DEE1EB;}
+ .d2-3964724219 .color-N6{color:#EEF1F8;}
+ .d2-3964724219 .color-N7{color:#FFFFFF;}
+ .d2-3964724219 .color-B1{color:#0D32B2;}
+ .d2-3964724219 .color-B2{color:#0D32B2;}
+ .d2-3964724219 .color-B3{color:#E3E9FD;}
+ .d2-3964724219 .color-B4{color:#E3E9FD;}
+ .d2-3964724219 .color-B5{color:#EDF0FD;}
+ .d2-3964724219 .color-B6{color:#F7F8FE;}
+ .d2-3964724219 .color-AA2{color:#4A6FF3;}
+ .d2-3964724219 .color-AA4{color:#EDF0FD;}
+ .d2-3964724219 .color-AA5{color:#F7F8FE;}
+ .d2-3964724219 .color-AB4{color:#EDF0FD;}
+ .d2-3964724219 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>
@@ -130,7 +130,7 @@
-rectangle square page parallelogram document cylinder queue package step callout stored_data person diamond oval circle hexagon cloud
-
+ rectangle square page parallelogram document cylinder queue package step callout stored_data person diamond oval circle hexagon cloud
+
\ No newline at end of file
diff --git a/d2renderers/d2sketch/testdata/dots-real/sketch.exp.svg b/d2renderers/d2sketch/testdata/dots-real/sketch.exp.svg
index 8097f7155..5dc108d59 100644
--- a/d2renderers/d2sketch/testdata/dots-real/sketch.exp.svg
+++ b/d2renderers/d2sketch/testdata/dots-real/sketch.exp.svg
@@ -1,17 +1,17 @@
-
+ .d2-757275498 .fill-N1{fill:#0A0F25;}
+ .d2-757275498 .fill-N2{fill:#676C7E;}
+ .d2-757275498 .fill-N3{fill:#9499AB;}
+ .d2-757275498 .fill-N4{fill:#CFD2DD;}
+ .d2-757275498 .fill-N5{fill:#DEE1EB;}
+ .d2-757275498 .fill-N6{fill:#EEF1F8;}
+ .d2-757275498 .fill-N7{fill:#FFFFFF;}
+ .d2-757275498 .fill-B1{fill:#0D32B2;}
+ .d2-757275498 .fill-B2{fill:#0D32B2;}
+ .d2-757275498 .fill-B3{fill:#E3E9FD;}
+ .d2-757275498 .fill-B4{fill:#E3E9FD;}
+ .d2-757275498 .fill-B5{fill:#EDF0FD;}
+ .d2-757275498 .fill-B6{fill:#F7F8FE;}
+ .d2-757275498 .fill-AA2{fill:#4A6FF3;}
+ .d2-757275498 .fill-AA4{fill:#EDF0FD;}
+ .d2-757275498 .fill-AA5{fill:#F7F8FE;}
+ .d2-757275498 .fill-AB4{fill:#EDF0FD;}
+ .d2-757275498 .fill-AB5{fill:#F7F8FE;}
+ .d2-757275498 .stroke-N1{stroke:#0A0F25;}
+ .d2-757275498 .stroke-N2{stroke:#676C7E;}
+ .d2-757275498 .stroke-N3{stroke:#9499AB;}
+ .d2-757275498 .stroke-N4{stroke:#CFD2DD;}
+ .d2-757275498 .stroke-N5{stroke:#DEE1EB;}
+ .d2-757275498 .stroke-N6{stroke:#EEF1F8;}
+ .d2-757275498 .stroke-N7{stroke:#FFFFFF;}
+ .d2-757275498 .stroke-B1{stroke:#0D32B2;}
+ .d2-757275498 .stroke-B2{stroke:#0D32B2;}
+ .d2-757275498 .stroke-B3{stroke:#E3E9FD;}
+ .d2-757275498 .stroke-B4{stroke:#E3E9FD;}
+ .d2-757275498 .stroke-B5{stroke:#EDF0FD;}
+ .d2-757275498 .stroke-B6{stroke:#F7F8FE;}
+ .d2-757275498 .stroke-AA2{stroke:#4A6FF3;}
+ .d2-757275498 .stroke-AA4{stroke:#EDF0FD;}
+ .d2-757275498 .stroke-AA5{stroke:#F7F8FE;}
+ .d2-757275498 .stroke-AB4{stroke:#EDF0FD;}
+ .d2-757275498 .stroke-AB5{stroke:#F7F8FE;}
+ .d2-757275498 .background-color-N1{background-color:#0A0F25;}
+ .d2-757275498 .background-color-N2{background-color:#676C7E;}
+ .d2-757275498 .background-color-N3{background-color:#9499AB;}
+ .d2-757275498 .background-color-N4{background-color:#CFD2DD;}
+ .d2-757275498 .background-color-N5{background-color:#DEE1EB;}
+ .d2-757275498 .background-color-N6{background-color:#EEF1F8;}
+ .d2-757275498 .background-color-N7{background-color:#FFFFFF;}
+ .d2-757275498 .background-color-B1{background-color:#0D32B2;}
+ .d2-757275498 .background-color-B2{background-color:#0D32B2;}
+ .d2-757275498 .background-color-B3{background-color:#E3E9FD;}
+ .d2-757275498 .background-color-B4{background-color:#E3E9FD;}
+ .d2-757275498 .background-color-B5{background-color:#EDF0FD;}
+ .d2-757275498 .background-color-B6{background-color:#F7F8FE;}
+ .d2-757275498 .background-color-AA2{background-color:#4A6FF3;}
+ .d2-757275498 .background-color-AA4{background-color:#EDF0FD;}
+ .d2-757275498 .background-color-AA5{background-color:#F7F8FE;}
+ .d2-757275498 .background-color-AB4{background-color:#EDF0FD;}
+ .d2-757275498 .background-color-AB5{background-color:#F7F8FE;}
+ .d2-757275498 .color-N1{color:#0A0F25;}
+ .d2-757275498 .color-N2{color:#676C7E;}
+ .d2-757275498 .color-N3{color:#9499AB;}
+ .d2-757275498 .color-N4{color:#CFD2DD;}
+ .d2-757275498 .color-N5{color:#DEE1EB;}
+ .d2-757275498 .color-N6{color:#EEF1F8;}
+ .d2-757275498 .color-N7{color:#FFFFFF;}
+ .d2-757275498 .color-B1{color:#0D32B2;}
+ .d2-757275498 .color-B2{color:#0D32B2;}
+ .d2-757275498 .color-B3{color:#E3E9FD;}
+ .d2-757275498 .color-B4{color:#E3E9FD;}
+ .d2-757275498 .color-B5{color:#EDF0FD;}
+ .d2-757275498 .color-B6{color:#F7F8FE;}
+ .d2-757275498 .color-AA2{color:#4A6FF3;}
+ .d2-757275498 .color-AA4{color:#EDF0FD;}
+ .d2-757275498 .color-AA5{color:#F7F8FE;}
+ .d2-757275498 .color-AB4{color:#EDF0FD;}
+ .d2-757275498 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>
@@ -159,9 +159,9 @@
-NETWORK D2 Parser + reader io.RuneReader + readerPos d2ast.Position - lookahead []rune # peekn(n int) (s string, eof bool) + peek() (r rune, eof bool) + rewind() void + commit() void CELL TOWER SATELLITES TRANSMITTER SEND SEND SEND
+NETWORK D2 Parser + reader io.RuneReader + readerPos d2ast.Position - lookahead []rune # peekn(n int) (s string, eof bool) + peek() (r rune, eof bool) + rewind() void + commit() void CELL TOWER SATELLITES TRANSMITTER SEND SEND SEND
-
-
-
+
+
+
\ No newline at end of file
diff --git a/d2renderers/d2sketch/testdata/double-border/sketch.exp.svg b/d2renderers/d2sketch/testdata/double-border/sketch.exp.svg
index d61c504ce..5680e214c 100644
--- a/d2renderers/d2sketch/testdata/double-border/sketch.exp.svg
+++ b/d2renderers/d2sketch/testdata/double-border/sketch.exp.svg
@@ -1,17 +1,17 @@
-
+ .d2-3255560050 .fill-N1{fill:#0A0F25;}
+ .d2-3255560050 .fill-N2{fill:#676C7E;}
+ .d2-3255560050 .fill-N3{fill:#9499AB;}
+ .d2-3255560050 .fill-N4{fill:#CFD2DD;}
+ .d2-3255560050 .fill-N5{fill:#DEE1EB;}
+ .d2-3255560050 .fill-N6{fill:#EEF1F8;}
+ .d2-3255560050 .fill-N7{fill:#FFFFFF;}
+ .d2-3255560050 .fill-B1{fill:#0D32B2;}
+ .d2-3255560050 .fill-B2{fill:#0D32B2;}
+ .d2-3255560050 .fill-B3{fill:#E3E9FD;}
+ .d2-3255560050 .fill-B4{fill:#E3E9FD;}
+ .d2-3255560050 .fill-B5{fill:#EDF0FD;}
+ .d2-3255560050 .fill-B6{fill:#F7F8FE;}
+ .d2-3255560050 .fill-AA2{fill:#4A6FF3;}
+ .d2-3255560050 .fill-AA4{fill:#EDF0FD;}
+ .d2-3255560050 .fill-AA5{fill:#F7F8FE;}
+ .d2-3255560050 .fill-AB4{fill:#EDF0FD;}
+ .d2-3255560050 .fill-AB5{fill:#F7F8FE;}
+ .d2-3255560050 .stroke-N1{stroke:#0A0F25;}
+ .d2-3255560050 .stroke-N2{stroke:#676C7E;}
+ .d2-3255560050 .stroke-N3{stroke:#9499AB;}
+ .d2-3255560050 .stroke-N4{stroke:#CFD2DD;}
+ .d2-3255560050 .stroke-N5{stroke:#DEE1EB;}
+ .d2-3255560050 .stroke-N6{stroke:#EEF1F8;}
+ .d2-3255560050 .stroke-N7{stroke:#FFFFFF;}
+ .d2-3255560050 .stroke-B1{stroke:#0D32B2;}
+ .d2-3255560050 .stroke-B2{stroke:#0D32B2;}
+ .d2-3255560050 .stroke-B3{stroke:#E3E9FD;}
+ .d2-3255560050 .stroke-B4{stroke:#E3E9FD;}
+ .d2-3255560050 .stroke-B5{stroke:#EDF0FD;}
+ .d2-3255560050 .stroke-B6{stroke:#F7F8FE;}
+ .d2-3255560050 .stroke-AA2{stroke:#4A6FF3;}
+ .d2-3255560050 .stroke-AA4{stroke:#EDF0FD;}
+ .d2-3255560050 .stroke-AA5{stroke:#F7F8FE;}
+ .d2-3255560050 .stroke-AB4{stroke:#EDF0FD;}
+ .d2-3255560050 .stroke-AB5{stroke:#F7F8FE;}
+ .d2-3255560050 .background-color-N1{background-color:#0A0F25;}
+ .d2-3255560050 .background-color-N2{background-color:#676C7E;}
+ .d2-3255560050 .background-color-N3{background-color:#9499AB;}
+ .d2-3255560050 .background-color-N4{background-color:#CFD2DD;}
+ .d2-3255560050 .background-color-N5{background-color:#DEE1EB;}
+ .d2-3255560050 .background-color-N6{background-color:#EEF1F8;}
+ .d2-3255560050 .background-color-N7{background-color:#FFFFFF;}
+ .d2-3255560050 .background-color-B1{background-color:#0D32B2;}
+ .d2-3255560050 .background-color-B2{background-color:#0D32B2;}
+ .d2-3255560050 .background-color-B3{background-color:#E3E9FD;}
+ .d2-3255560050 .background-color-B4{background-color:#E3E9FD;}
+ .d2-3255560050 .background-color-B5{background-color:#EDF0FD;}
+ .d2-3255560050 .background-color-B6{background-color:#F7F8FE;}
+ .d2-3255560050 .background-color-AA2{background-color:#4A6FF3;}
+ .d2-3255560050 .background-color-AA4{background-color:#EDF0FD;}
+ .d2-3255560050 .background-color-AA5{background-color:#F7F8FE;}
+ .d2-3255560050 .background-color-AB4{background-color:#EDF0FD;}
+ .d2-3255560050 .background-color-AB5{background-color:#F7F8FE;}
+ .d2-3255560050 .color-N1{color:#0A0F25;}
+ .d2-3255560050 .color-N2{color:#676C7E;}
+ .d2-3255560050 .color-N3{color:#9499AB;}
+ .d2-3255560050 .color-N4{color:#CFD2DD;}
+ .d2-3255560050 .color-N5{color:#DEE1EB;}
+ .d2-3255560050 .color-N6{color:#EEF1F8;}
+ .d2-3255560050 .color-N7{color:#FFFFFF;}
+ .d2-3255560050 .color-B1{color:#0D32B2;}
+ .d2-3255560050 .color-B2{color:#0D32B2;}
+ .d2-3255560050 .color-B3{color:#E3E9FD;}
+ .d2-3255560050 .color-B4{color:#E3E9FD;}
+ .d2-3255560050 .color-B5{color:#EDF0FD;}
+ .d2-3255560050 .color-B6{color:#F7F8FE;}
+ .d2-3255560050 .color-AA2{color:#4A6FF3;}
+ .d2-3255560050 .color-AA4{color:#EDF0FD;}
+ .d2-3255560050 .color-AA5{color:#F7F8FE;}
+ .d2-3255560050 .color-AB4{color:#EDF0FD;}
+ .d2-3255560050 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>
@@ -1205,9 +1205,9 @@
-NETWORK CELL TOWER SATELLITES TRANSMITTER SEND SEND SEND
-
-
-
-
+NETWORK CELL TOWER SATELLITES TRANSMITTER SEND SEND SEND
+
+
+
+
\ No newline at end of file
diff --git a/d2renderers/d2sketch/testdata/root-fill/sketch.exp.svg b/d2renderers/d2sketch/testdata/root-fill/sketch.exp.svg
index a94d04fbb..36f535cbe 100644
--- a/d2renderers/d2sketch/testdata/root-fill/sketch.exp.svg
+++ b/d2renderers/d2sketch/testdata/root-fill/sketch.exp.svg
@@ -1,21 +1,21 @@
-
@@ -844,14 +844,14 @@
- OEM Factory OEM Warehouse Distributor Warehouse company Warehouse Flow-I (Warehousing, Installation) Master Regional-1 Regional-2 Regional-N company Warehouse
+
OEM Factory OEM Warehouse Distributor Warehouse company Warehouse Flow-I (Warehousing, Installation) Master Regional-1 Regional-2 Regional-N company Warehouse
Asset Tagging
Inventory
Staging
Dispatch to Site
-
-
+
+
\ No newline at end of file
diff --git a/d2renderers/d2sketch/testdata/sql_tables/sketch.exp.svg b/d2renderers/d2sketch/testdata/sql_tables/sketch.exp.svg
index 85c566b37..9f5f94909 100644
--- a/d2renderers/d2sketch/testdata/sql_tables/sketch.exp.svg
+++ b/d2renderers/d2sketch/testdata/sql_tables/sketch.exp.svg
@@ -1,10 +1,10 @@
-
+ .d2-2348964013 .fill-N1{fill:#0A0F25;}
+ .d2-2348964013 .fill-N2{fill:#676C7E;}
+ .d2-2348964013 .fill-N3{fill:#9499AB;}
+ .d2-2348964013 .fill-N4{fill:#CFD2DD;}
+ .d2-2348964013 .fill-N5{fill:#DEE1EB;}
+ .d2-2348964013 .fill-N6{fill:#EEF1F8;}
+ .d2-2348964013 .fill-N7{fill:#FFFFFF;}
+ .d2-2348964013 .fill-B1{fill:#0D32B2;}
+ .d2-2348964013 .fill-B2{fill:#0D32B2;}
+ .d2-2348964013 .fill-B3{fill:#E3E9FD;}
+ .d2-2348964013 .fill-B4{fill:#E3E9FD;}
+ .d2-2348964013 .fill-B5{fill:#EDF0FD;}
+ .d2-2348964013 .fill-B6{fill:#F7F8FE;}
+ .d2-2348964013 .fill-AA2{fill:#4A6FF3;}
+ .d2-2348964013 .fill-AA4{fill:#EDF0FD;}
+ .d2-2348964013 .fill-AA5{fill:#F7F8FE;}
+ .d2-2348964013 .fill-AB4{fill:#EDF0FD;}
+ .d2-2348964013 .fill-AB5{fill:#F7F8FE;}
+ .d2-2348964013 .stroke-N1{stroke:#0A0F25;}
+ .d2-2348964013 .stroke-N2{stroke:#676C7E;}
+ .d2-2348964013 .stroke-N3{stroke:#9499AB;}
+ .d2-2348964013 .stroke-N4{stroke:#CFD2DD;}
+ .d2-2348964013 .stroke-N5{stroke:#DEE1EB;}
+ .d2-2348964013 .stroke-N6{stroke:#EEF1F8;}
+ .d2-2348964013 .stroke-N7{stroke:#FFFFFF;}
+ .d2-2348964013 .stroke-B1{stroke:#0D32B2;}
+ .d2-2348964013 .stroke-B2{stroke:#0D32B2;}
+ .d2-2348964013 .stroke-B3{stroke:#E3E9FD;}
+ .d2-2348964013 .stroke-B4{stroke:#E3E9FD;}
+ .d2-2348964013 .stroke-B5{stroke:#EDF0FD;}
+ .d2-2348964013 .stroke-B6{stroke:#F7F8FE;}
+ .d2-2348964013 .stroke-AA2{stroke:#4A6FF3;}
+ .d2-2348964013 .stroke-AA4{stroke:#EDF0FD;}
+ .d2-2348964013 .stroke-AA5{stroke:#F7F8FE;}
+ .d2-2348964013 .stroke-AB4{stroke:#EDF0FD;}
+ .d2-2348964013 .stroke-AB5{stroke:#F7F8FE;}
+ .d2-2348964013 .background-color-N1{background-color:#0A0F25;}
+ .d2-2348964013 .background-color-N2{background-color:#676C7E;}
+ .d2-2348964013 .background-color-N3{background-color:#9499AB;}
+ .d2-2348964013 .background-color-N4{background-color:#CFD2DD;}
+ .d2-2348964013 .background-color-N5{background-color:#DEE1EB;}
+ .d2-2348964013 .background-color-N6{background-color:#EEF1F8;}
+ .d2-2348964013 .background-color-N7{background-color:#FFFFFF;}
+ .d2-2348964013 .background-color-B1{background-color:#0D32B2;}
+ .d2-2348964013 .background-color-B2{background-color:#0D32B2;}
+ .d2-2348964013 .background-color-B3{background-color:#E3E9FD;}
+ .d2-2348964013 .background-color-B4{background-color:#E3E9FD;}
+ .d2-2348964013 .background-color-B5{background-color:#EDF0FD;}
+ .d2-2348964013 .background-color-B6{background-color:#F7F8FE;}
+ .d2-2348964013 .background-color-AA2{background-color:#4A6FF3;}
+ .d2-2348964013 .background-color-AA4{background-color:#EDF0FD;}
+ .d2-2348964013 .background-color-AA5{background-color:#F7F8FE;}
+ .d2-2348964013 .background-color-AB4{background-color:#EDF0FD;}
+ .d2-2348964013 .background-color-AB5{background-color:#F7F8FE;}
+ .d2-2348964013 .color-N1{color:#0A0F25;}
+ .d2-2348964013 .color-N2{color:#676C7E;}
+ .d2-2348964013 .color-N3{color:#9499AB;}
+ .d2-2348964013 .color-N4{color:#CFD2DD;}
+ .d2-2348964013 .color-N5{color:#DEE1EB;}
+ .d2-2348964013 .color-N6{color:#EEF1F8;}
+ .d2-2348964013 .color-N7{color:#FFFFFF;}
+ .d2-2348964013 .color-B1{color:#0D32B2;}
+ .d2-2348964013 .color-B2{color:#0D32B2;}
+ .d2-2348964013 .color-B3{color:#E3E9FD;}
+ .d2-2348964013 .color-B4{color:#E3E9FD;}
+ .d2-2348964013 .color-B5{color:#EDF0FD;}
+ .d2-2348964013 .color-B6{color:#F7F8FE;}
+ .d2-2348964013 .color-AA2{color:#4A6FF3;}
+ .d2-2348964013 .color-AA4{color:#EDF0FD;}
+ .d2-2348964013 .color-AA5{color:#F7F8FE;}
+ .d2-2348964013 .color-AB4{color:#EDF0FD;}
+ .d2-2348964013 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>
@@ -97,7 +97,7 @@
- users id int name string email string password string last_login datetime products id int price decimal sku string name string orders id int user_id int product_id int shipments id int order_id int tracking_number string PK status string
+ users id int name string email string password string last_login datetime products id int price decimal sku string name string orders id int user_id int product_id int shipments id int order_id int tracking_number string PK status string
\ No newline at end of file
diff --git a/d2renderers/d2sketch/testdata/sql_tables_dark/sketch.exp.svg b/d2renderers/d2sketch/testdata/sql_tables_dark/sketch.exp.svg
index 4b933e55a..641f51c9e 100644
--- a/d2renderers/d2sketch/testdata/sql_tables_dark/sketch.exp.svg
+++ b/d2renderers/d2sketch/testdata/sql_tables_dark/sketch.exp.svg
@@ -1,10 +1,10 @@
-
+ .d2-2348964013 .fill-N1{fill:#CDD6F4;}
+ .d2-2348964013 .fill-N2{fill:#BAC2DE;}
+ .d2-2348964013 .fill-N3{fill:#A6ADC8;}
+ .d2-2348964013 .fill-N4{fill:#585B70;}
+ .d2-2348964013 .fill-N5{fill:#45475A;}
+ .d2-2348964013 .fill-N6{fill:#313244;}
+ .d2-2348964013 .fill-N7{fill:#1E1E2E;}
+ .d2-2348964013 .fill-B1{fill:#CBA6f7;}
+ .d2-2348964013 .fill-B2{fill:#CBA6f7;}
+ .d2-2348964013 .fill-B3{fill:#6C7086;}
+ .d2-2348964013 .fill-B4{fill:#585B70;}
+ .d2-2348964013 .fill-B5{fill:#45475A;}
+ .d2-2348964013 .fill-B6{fill:#313244;}
+ .d2-2348964013 .fill-AA2{fill:#f38BA8;}
+ .d2-2348964013 .fill-AA4{fill:#45475A;}
+ .d2-2348964013 .fill-AA5{fill:#313244;}
+ .d2-2348964013 .fill-AB4{fill:#45475A;}
+ .d2-2348964013 .fill-AB5{fill:#313244;}
+ .d2-2348964013 .stroke-N1{stroke:#CDD6F4;}
+ .d2-2348964013 .stroke-N2{stroke:#BAC2DE;}
+ .d2-2348964013 .stroke-N3{stroke:#A6ADC8;}
+ .d2-2348964013 .stroke-N4{stroke:#585B70;}
+ .d2-2348964013 .stroke-N5{stroke:#45475A;}
+ .d2-2348964013 .stroke-N6{stroke:#313244;}
+ .d2-2348964013 .stroke-N7{stroke:#1E1E2E;}
+ .d2-2348964013 .stroke-B1{stroke:#CBA6f7;}
+ .d2-2348964013 .stroke-B2{stroke:#CBA6f7;}
+ .d2-2348964013 .stroke-B3{stroke:#6C7086;}
+ .d2-2348964013 .stroke-B4{stroke:#585B70;}
+ .d2-2348964013 .stroke-B5{stroke:#45475A;}
+ .d2-2348964013 .stroke-B6{stroke:#313244;}
+ .d2-2348964013 .stroke-AA2{stroke:#f38BA8;}
+ .d2-2348964013 .stroke-AA4{stroke:#45475A;}
+ .d2-2348964013 .stroke-AA5{stroke:#313244;}
+ .d2-2348964013 .stroke-AB4{stroke:#45475A;}
+ .d2-2348964013 .stroke-AB5{stroke:#313244;}
+ .d2-2348964013 .background-color-N1{background-color:#CDD6F4;}
+ .d2-2348964013 .background-color-N2{background-color:#BAC2DE;}
+ .d2-2348964013 .background-color-N3{background-color:#A6ADC8;}
+ .d2-2348964013 .background-color-N4{background-color:#585B70;}
+ .d2-2348964013 .background-color-N5{background-color:#45475A;}
+ .d2-2348964013 .background-color-N6{background-color:#313244;}
+ .d2-2348964013 .background-color-N7{background-color:#1E1E2E;}
+ .d2-2348964013 .background-color-B1{background-color:#CBA6f7;}
+ .d2-2348964013 .background-color-B2{background-color:#CBA6f7;}
+ .d2-2348964013 .background-color-B3{background-color:#6C7086;}
+ .d2-2348964013 .background-color-B4{background-color:#585B70;}
+ .d2-2348964013 .background-color-B5{background-color:#45475A;}
+ .d2-2348964013 .background-color-B6{background-color:#313244;}
+ .d2-2348964013 .background-color-AA2{background-color:#f38BA8;}
+ .d2-2348964013 .background-color-AA4{background-color:#45475A;}
+ .d2-2348964013 .background-color-AA5{background-color:#313244;}
+ .d2-2348964013 .background-color-AB4{background-color:#45475A;}
+ .d2-2348964013 .background-color-AB5{background-color:#313244;}
+ .d2-2348964013 .color-N1{color:#CDD6F4;}
+ .d2-2348964013 .color-N2{color:#BAC2DE;}
+ .d2-2348964013 .color-N3{color:#A6ADC8;}
+ .d2-2348964013 .color-N4{color:#585B70;}
+ .d2-2348964013 .color-N5{color:#45475A;}
+ .d2-2348964013 .color-N6{color:#313244;}
+ .d2-2348964013 .color-N7{color:#1E1E2E;}
+ .d2-2348964013 .color-B1{color:#CBA6f7;}
+ .d2-2348964013 .color-B2{color:#CBA6f7;}
+ .d2-2348964013 .color-B3{color:#6C7086;}
+ .d2-2348964013 .color-B4{color:#585B70;}
+ .d2-2348964013 .color-B5{color:#45475A;}
+ .d2-2348964013 .color-B6{color:#313244;}
+ .d2-2348964013 .color-AA2{color:#f38BA8;}
+ .d2-2348964013 .color-AA4{color:#45475A;}
+ .d2-2348964013 .color-AA5{color:#313244;}
+ .d2-2348964013 .color-AB4{color:#45475A;}
+ .d2-2348964013 .color-AB5{color:#313244;}.appendix text.text{fill:#CDD6F4}.md{--color-fg-default:#CDD6F4;--color-fg-muted:#BAC2DE;--color-fg-subtle:#A6ADC8;--color-canvas-default:#1E1E2E;--color-canvas-subtle:#313244;--color-border-default:#CBA6f7;--color-border-muted:#CBA6f7;--color-neutral-muted:#313244;--color-accent-fg:#CBA6f7;--color-accent-emphasis:#CBA6f7;--color-attention-subtle:#BAC2DE;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-B2{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-B3{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-B4{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-B5{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B6{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-AA2{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-AA4{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-AA5{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-AB4{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-AB5{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N1{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N2{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N5{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N6{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N7{fill:url(#streaks-darker);mix-blend-mode:lighten}.light-code{display: none}.dark-code{display: block}]]>
- users id int name string email string password string last_login datetime products id int price decimal sku string name string orders id int user_id int product_id int shipments id int order_id int tracking_number string PK status string
+ users id int name string email string password string last_login datetime products id int price decimal sku string name string orders id int user_id int product_id int shipments id int order_id int tracking_number string PK status string
\ No newline at end of file
diff --git a/d2renderers/d2sketch/testdata/terminal/sketch.exp.svg b/d2renderers/d2sketch/testdata/terminal/sketch.exp.svg
index a21db53bd..371d60fe2 100644
--- a/d2renderers/d2sketch/testdata/terminal/sketch.exp.svg
+++ b/d2renderers/d2sketch/testdata/terminal/sketch.exp.svg
@@ -1,17 +1,17 @@
-
+ .d2-2687318495 .fill-N1{fill:#000410;}
+ .d2-2687318495 .fill-N2{fill:#0000B8;}
+ .d2-2687318495 .fill-N3{fill:#9499AB;}
+ .d2-2687318495 .fill-N4{fill:#CFD2DD;}
+ .d2-2687318495 .fill-N5{fill:#C3DEF3;}
+ .d2-2687318495 .fill-N6{fill:#EEF1F8;}
+ .d2-2687318495 .fill-N7{fill:#FFFFFF;}
+ .d2-2687318495 .fill-B1{fill:#000410;}
+ .d2-2687318495 .fill-B2{fill:#0000E4;}
+ .d2-2687318495 .fill-B3{fill:#5AA4DC;}
+ .d2-2687318495 .fill-B4{fill:#E7E9EE;}
+ .d2-2687318495 .fill-B5{fill:#F5F6F9;}
+ .d2-2687318495 .fill-B6{fill:#FFFFFF;}
+ .d2-2687318495 .fill-AA2{fill:#008566;}
+ .d2-2687318495 .fill-AA4{fill:#45BBA5;}
+ .d2-2687318495 .fill-AA5{fill:#7ACCBD;}
+ .d2-2687318495 .fill-AB4{fill:#F1C759;}
+ .d2-2687318495 .fill-AB5{fill:#F9E088;}
+ .d2-2687318495 .stroke-N1{stroke:#000410;}
+ .d2-2687318495 .stroke-N2{stroke:#0000B8;}
+ .d2-2687318495 .stroke-N3{stroke:#9499AB;}
+ .d2-2687318495 .stroke-N4{stroke:#CFD2DD;}
+ .d2-2687318495 .stroke-N5{stroke:#C3DEF3;}
+ .d2-2687318495 .stroke-N6{stroke:#EEF1F8;}
+ .d2-2687318495 .stroke-N7{stroke:#FFFFFF;}
+ .d2-2687318495 .stroke-B1{stroke:#000410;}
+ .d2-2687318495 .stroke-B2{stroke:#0000E4;}
+ .d2-2687318495 .stroke-B3{stroke:#5AA4DC;}
+ .d2-2687318495 .stroke-B4{stroke:#E7E9EE;}
+ .d2-2687318495 .stroke-B5{stroke:#F5F6F9;}
+ .d2-2687318495 .stroke-B6{stroke:#FFFFFF;}
+ .d2-2687318495 .stroke-AA2{stroke:#008566;}
+ .d2-2687318495 .stroke-AA4{stroke:#45BBA5;}
+ .d2-2687318495 .stroke-AA5{stroke:#7ACCBD;}
+ .d2-2687318495 .stroke-AB4{stroke:#F1C759;}
+ .d2-2687318495 .stroke-AB5{stroke:#F9E088;}
+ .d2-2687318495 .background-color-N1{background-color:#000410;}
+ .d2-2687318495 .background-color-N2{background-color:#0000B8;}
+ .d2-2687318495 .background-color-N3{background-color:#9499AB;}
+ .d2-2687318495 .background-color-N4{background-color:#CFD2DD;}
+ .d2-2687318495 .background-color-N5{background-color:#C3DEF3;}
+ .d2-2687318495 .background-color-N6{background-color:#EEF1F8;}
+ .d2-2687318495 .background-color-N7{background-color:#FFFFFF;}
+ .d2-2687318495 .background-color-B1{background-color:#000410;}
+ .d2-2687318495 .background-color-B2{background-color:#0000E4;}
+ .d2-2687318495 .background-color-B3{background-color:#5AA4DC;}
+ .d2-2687318495 .background-color-B4{background-color:#E7E9EE;}
+ .d2-2687318495 .background-color-B5{background-color:#F5F6F9;}
+ .d2-2687318495 .background-color-B6{background-color:#FFFFFF;}
+ .d2-2687318495 .background-color-AA2{background-color:#008566;}
+ .d2-2687318495 .background-color-AA4{background-color:#45BBA5;}
+ .d2-2687318495 .background-color-AA5{background-color:#7ACCBD;}
+ .d2-2687318495 .background-color-AB4{background-color:#F1C759;}
+ .d2-2687318495 .background-color-AB5{background-color:#F9E088;}
+ .d2-2687318495 .color-N1{color:#000410;}
+ .d2-2687318495 .color-N2{color:#0000B8;}
+ .d2-2687318495 .color-N3{color:#9499AB;}
+ .d2-2687318495 .color-N4{color:#CFD2DD;}
+ .d2-2687318495 .color-N5{color:#C3DEF3;}
+ .d2-2687318495 .color-N6{color:#EEF1F8;}
+ .d2-2687318495 .color-N7{color:#FFFFFF;}
+ .d2-2687318495 .color-B1{color:#000410;}
+ .d2-2687318495 .color-B2{color:#0000E4;}
+ .d2-2687318495 .color-B3{color:#5AA4DC;}
+ .d2-2687318495 .color-B4{color:#E7E9EE;}
+ .d2-2687318495 .color-B5{color:#F5F6F9;}
+ .d2-2687318495 .color-B6{color:#FFFFFF;}
+ .d2-2687318495 .color-AA2{color:#008566;}
+ .d2-2687318495 .color-AA4{color:#45BBA5;}
+ .d2-2687318495 .color-AA5{color:#7ACCBD;}
+ .d2-2687318495 .color-AB4{color:#F1C759;}
+ .d2-2687318495 .color-AB5{color:#F9E088;}.appendix text.text{fill:#000410}.md{--color-fg-default:#000410;--color-fg-muted:#0000B8;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#000410;--color-border-muted:#0000E4;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0000E4;--color-accent-emphasis:#0000E4;--color-attention-subtle:#0000B8;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-AA5{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-AB4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-AB5{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>
@@ -137,14 +137,14 @@
-NETWORK USER API SERVER LOGS CELL TOWER ONLINE PORTAL DATA PROCESSOR SATELLITES TRANSMITTER UI STORAGE SEND SEND SEND PHONE LOGS MAKE CALL ACCESS DISPLAY PERSIST
-
-
-
-
-
+ NETWORK USER API SERVER LOGS CELL TOWER ONLINE PORTAL DATA PROCESSOR SATELLITES TRANSMITTER UI STORAGE SEND SEND SEND PHONE LOGS MAKE CALL ACCESS DISPLAY PERSIST
+
+
+
+
+
-
-
-
+
+
+
\ No newline at end of file
diff --git a/d2renderers/d2sketch/testdata/twitter/sketch.exp.svg b/d2renderers/d2sketch/testdata/twitter/sketch.exp.svg
index fae39351f..7cd1d7bca 100644
--- a/d2renderers/d2sketch/testdata/twitter/sketch.exp.svg
+++ b/d2renderers/d2sketch/testdata/twitter/sketch.exp.svg
@@ -1,28 +1,28 @@
-
@@ -859,7 +859,7 @@
- People discovery service Ad mixer Onboarding service Web Iphone Android Timeline Scorer Home Ranker Timeline Service Home mixer Manhattan Gizmoduck Social graph Prediction Service Home Scorer Manhattan Memcache Fetch Feature Scoring Prediction Service ...etc Timeline mixer
+
People discovery service Ad mixer Onboarding service Web Iphone Android Timeline Scorer Home Ranker Timeline Service Home mixer Manhattan Gizmoduck Social graph Prediction Service Home Scorer Manhattan Memcache Fetch Feature Scoring Prediction Service ...etc Timeline mixer
Inject ads, who-to-follow, onboarding
Conversation module
@@ -867,13 +867,13 @@
Tweat deduplication
Served data logging
-
GraphQL Federated Strato Column TLS-API (being deprecated) CrMixer EarlyBird Utag Space Communities Thrift RPC Candidate Fetch Feature Hydration Candidate sources
-
-
-
-
-
-
-
+ GraphQL Federated Strato Column TLS-API (being deprecated) CrMixer EarlyBird Utag Space Communities Thrift RPC Candidate Fetch Feature Hydration Candidate sources
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/d2renderers/d2sketch/testdata/twitter_dark/sketch.exp.svg b/d2renderers/d2sketch/testdata/twitter_dark/sketch.exp.svg
index cfe5de158..68361e9c5 100644
--- a/d2renderers/d2sketch/testdata/twitter_dark/sketch.exp.svg
+++ b/d2renderers/d2sketch/testdata/twitter_dark/sketch.exp.svg
@@ -1,28 +1,28 @@
-
@@ -859,7 +859,7 @@
- People discovery service Ad mixer Onboarding service Web Iphone Android Timeline Scorer Home Ranker Timeline Service Home mixer Manhattan Gizmoduck Social graph Prediction Service Home Scorer Manhattan Memcache Fetch Feature Scoring Prediction Service ...etc Timeline mixer
+
People discovery service Ad mixer Onboarding service Web Iphone Android Timeline Scorer Home Ranker Timeline Service Home mixer Manhattan Gizmoduck Social graph Prediction Service Home Scorer Manhattan Memcache Fetch Feature Scoring Prediction Service ...etc Timeline mixer
Inject ads, who-to-follow, onboarding
Conversation module
@@ -867,13 +867,13 @@
Tweat deduplication
Served data logging
-
GraphQL Federated Strato Column TLS-API (being deprecated) CrMixer EarlyBird Utag Space Communities Thrift RPC Candidate Fetch Feature Hydration Candidate sources
-
-
-
-
-
-
-
+ GraphQL Federated Strato Column TLS-API (being deprecated) CrMixer EarlyBird Utag Space Communities Thrift RPC Candidate Fetch Feature Hydration Candidate sources
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/d2renderers/d2svg/appendix/testdata/diagram_wider_than_tooltip/sketch.exp.svg b/d2renderers/d2svg/appendix/testdata/diagram_wider_than_tooltip/sketch.exp.svg
index 731b36ca4..1c45e9583 100644
--- a/d2renderers/d2svg/appendix/testdata/diagram_wider_than_tooltip/sketch.exp.svg
+++ b/d2renderers/d2svg/appendix/testdata/diagram_wider_than_tooltip/sketch.exp.svg
@@ -1,10 +1,10 @@
-rectangle square page parallelogram document cylinder queue package step callout stored_data person diamond oval circle hexagon cloud
+ .d2-2495420426 .fill-N1{fill:#CDD6F4;}
+ .d2-2495420426 .fill-N2{fill:#BAC2DE;}
+ .d2-2495420426 .fill-N3{fill:#A6ADC8;}
+ .d2-2495420426 .fill-N4{fill:#585B70;}
+ .d2-2495420426 .fill-N5{fill:#45475A;}
+ .d2-2495420426 .fill-N6{fill:#313244;}
+ .d2-2495420426 .fill-N7{fill:#1E1E2E;}
+ .d2-2495420426 .fill-B1{fill:#CBA6f7;}
+ .d2-2495420426 .fill-B2{fill:#CBA6f7;}
+ .d2-2495420426 .fill-B3{fill:#6C7086;}
+ .d2-2495420426 .fill-B4{fill:#585B70;}
+ .d2-2495420426 .fill-B5{fill:#45475A;}
+ .d2-2495420426 .fill-B6{fill:#313244;}
+ .d2-2495420426 .fill-AA2{fill:#f38BA8;}
+ .d2-2495420426 .fill-AA4{fill:#45475A;}
+ .d2-2495420426 .fill-AA5{fill:#313244;}
+ .d2-2495420426 .fill-AB4{fill:#45475A;}
+ .d2-2495420426 .fill-AB5{fill:#313244;}
+ .d2-2495420426 .stroke-N1{stroke:#CDD6F4;}
+ .d2-2495420426 .stroke-N2{stroke:#BAC2DE;}
+ .d2-2495420426 .stroke-N3{stroke:#A6ADC8;}
+ .d2-2495420426 .stroke-N4{stroke:#585B70;}
+ .d2-2495420426 .stroke-N5{stroke:#45475A;}
+ .d2-2495420426 .stroke-N6{stroke:#313244;}
+ .d2-2495420426 .stroke-N7{stroke:#1E1E2E;}
+ .d2-2495420426 .stroke-B1{stroke:#CBA6f7;}
+ .d2-2495420426 .stroke-B2{stroke:#CBA6f7;}
+ .d2-2495420426 .stroke-B3{stroke:#6C7086;}
+ .d2-2495420426 .stroke-B4{stroke:#585B70;}
+ .d2-2495420426 .stroke-B5{stroke:#45475A;}
+ .d2-2495420426 .stroke-B6{stroke:#313244;}
+ .d2-2495420426 .stroke-AA2{stroke:#f38BA8;}
+ .d2-2495420426 .stroke-AA4{stroke:#45475A;}
+ .d2-2495420426 .stroke-AA5{stroke:#313244;}
+ .d2-2495420426 .stroke-AB4{stroke:#45475A;}
+ .d2-2495420426 .stroke-AB5{stroke:#313244;}
+ .d2-2495420426 .background-color-N1{background-color:#CDD6F4;}
+ .d2-2495420426 .background-color-N2{background-color:#BAC2DE;}
+ .d2-2495420426 .background-color-N3{background-color:#A6ADC8;}
+ .d2-2495420426 .background-color-N4{background-color:#585B70;}
+ .d2-2495420426 .background-color-N5{background-color:#45475A;}
+ .d2-2495420426 .background-color-N6{background-color:#313244;}
+ .d2-2495420426 .background-color-N7{background-color:#1E1E2E;}
+ .d2-2495420426 .background-color-B1{background-color:#CBA6f7;}
+ .d2-2495420426 .background-color-B2{background-color:#CBA6f7;}
+ .d2-2495420426 .background-color-B3{background-color:#6C7086;}
+ .d2-2495420426 .background-color-B4{background-color:#585B70;}
+ .d2-2495420426 .background-color-B5{background-color:#45475A;}
+ .d2-2495420426 .background-color-B6{background-color:#313244;}
+ .d2-2495420426 .background-color-AA2{background-color:#f38BA8;}
+ .d2-2495420426 .background-color-AA4{background-color:#45475A;}
+ .d2-2495420426 .background-color-AA5{background-color:#313244;}
+ .d2-2495420426 .background-color-AB4{background-color:#45475A;}
+ .d2-2495420426 .background-color-AB5{background-color:#313244;}
+ .d2-2495420426 .color-N1{color:#CDD6F4;}
+ .d2-2495420426 .color-N2{color:#BAC2DE;}
+ .d2-2495420426 .color-N3{color:#A6ADC8;}
+ .d2-2495420426 .color-N4{color:#585B70;}
+ .d2-2495420426 .color-N5{color:#45475A;}
+ .d2-2495420426 .color-N6{color:#313244;}
+ .d2-2495420426 .color-N7{color:#1E1E2E;}
+ .d2-2495420426 .color-B1{color:#CBA6f7;}
+ .d2-2495420426 .color-B2{color:#CBA6f7;}
+ .d2-2495420426 .color-B3{color:#6C7086;}
+ .d2-2495420426 .color-B4{color:#585B70;}
+ .d2-2495420426 .color-B5{color:#45475A;}
+ .d2-2495420426 .color-B6{color:#313244;}
+ .d2-2495420426 .color-AA2{color:#f38BA8;}
+ .d2-2495420426 .color-AA4{color:#45475A;}
+ .d2-2495420426 .color-AA5{color:#313244;}
+ .d2-2495420426 .color-AB4{color:#45475A;}
+ .d2-2495420426 .color-AB5{color:#313244;}.appendix text.text{fill:#CDD6F4}.md{--color-fg-default:#CDD6F4;--color-fg-muted:#BAC2DE;--color-fg-subtle:#A6ADC8;--color-canvas-default:#1E1E2E;--color-canvas-subtle:#313244;--color-border-default:#CBA6f7;--color-border-muted:#CBA6f7;--color-neutral-muted:#313244;--color-accent-fg:#CBA6f7;--color-accent-emphasis:#CBA6f7;--color-attention-subtle:#BAC2DE;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-B2{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-B3{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-B4{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-B5{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B6{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-AA2{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-AA4{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-AA5{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-AB4{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-AB5{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N1{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N2{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N5{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N6{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N7{fill:url(#streaks-darker);mix-blend-mode:lighten}.light-code{display: none}.dark-code{display: block}]]>rectangle square page parallelogram document cylinder queue package step callout stored_data person diamond oval circle hexagon cloud
\ No newline at end of file
diff --git a/d2renderers/d2svg/dark_theme/testdata/animated/dark_theme.exp.svg b/d2renderers/d2svg/dark_theme/testdata/animated/dark_theme.exp.svg
index d043423c4..e6f863efd 100644
--- a/d2renderers/d2svg/dark_theme/testdata/animated/dark_theme.exp.svg
+++ b/d2renderers/d2svg/dark_theme/testdata/animated/dark_theme.exp.svg
@@ -1,10 +1,10 @@
-winter summer trees snow sun
-
+ .d2-625576809 .fill-N1{fill:#CDD6F4;}
+ .d2-625576809 .fill-N2{fill:#BAC2DE;}
+ .d2-625576809 .fill-N3{fill:#A6ADC8;}
+ .d2-625576809 .fill-N4{fill:#585B70;}
+ .d2-625576809 .fill-N5{fill:#45475A;}
+ .d2-625576809 .fill-N6{fill:#313244;}
+ .d2-625576809 .fill-N7{fill:#1E1E2E;}
+ .d2-625576809 .fill-B1{fill:#CBA6f7;}
+ .d2-625576809 .fill-B2{fill:#CBA6f7;}
+ .d2-625576809 .fill-B3{fill:#6C7086;}
+ .d2-625576809 .fill-B4{fill:#585B70;}
+ .d2-625576809 .fill-B5{fill:#45475A;}
+ .d2-625576809 .fill-B6{fill:#313244;}
+ .d2-625576809 .fill-AA2{fill:#f38BA8;}
+ .d2-625576809 .fill-AA4{fill:#45475A;}
+ .d2-625576809 .fill-AA5{fill:#313244;}
+ .d2-625576809 .fill-AB4{fill:#45475A;}
+ .d2-625576809 .fill-AB5{fill:#313244;}
+ .d2-625576809 .stroke-N1{stroke:#CDD6F4;}
+ .d2-625576809 .stroke-N2{stroke:#BAC2DE;}
+ .d2-625576809 .stroke-N3{stroke:#A6ADC8;}
+ .d2-625576809 .stroke-N4{stroke:#585B70;}
+ .d2-625576809 .stroke-N5{stroke:#45475A;}
+ .d2-625576809 .stroke-N6{stroke:#313244;}
+ .d2-625576809 .stroke-N7{stroke:#1E1E2E;}
+ .d2-625576809 .stroke-B1{stroke:#CBA6f7;}
+ .d2-625576809 .stroke-B2{stroke:#CBA6f7;}
+ .d2-625576809 .stroke-B3{stroke:#6C7086;}
+ .d2-625576809 .stroke-B4{stroke:#585B70;}
+ .d2-625576809 .stroke-B5{stroke:#45475A;}
+ .d2-625576809 .stroke-B6{stroke:#313244;}
+ .d2-625576809 .stroke-AA2{stroke:#f38BA8;}
+ .d2-625576809 .stroke-AA4{stroke:#45475A;}
+ .d2-625576809 .stroke-AA5{stroke:#313244;}
+ .d2-625576809 .stroke-AB4{stroke:#45475A;}
+ .d2-625576809 .stroke-AB5{stroke:#313244;}
+ .d2-625576809 .background-color-N1{background-color:#CDD6F4;}
+ .d2-625576809 .background-color-N2{background-color:#BAC2DE;}
+ .d2-625576809 .background-color-N3{background-color:#A6ADC8;}
+ .d2-625576809 .background-color-N4{background-color:#585B70;}
+ .d2-625576809 .background-color-N5{background-color:#45475A;}
+ .d2-625576809 .background-color-N6{background-color:#313244;}
+ .d2-625576809 .background-color-N7{background-color:#1E1E2E;}
+ .d2-625576809 .background-color-B1{background-color:#CBA6f7;}
+ .d2-625576809 .background-color-B2{background-color:#CBA6f7;}
+ .d2-625576809 .background-color-B3{background-color:#6C7086;}
+ .d2-625576809 .background-color-B4{background-color:#585B70;}
+ .d2-625576809 .background-color-B5{background-color:#45475A;}
+ .d2-625576809 .background-color-B6{background-color:#313244;}
+ .d2-625576809 .background-color-AA2{background-color:#f38BA8;}
+ .d2-625576809 .background-color-AA4{background-color:#45475A;}
+ .d2-625576809 .background-color-AA5{background-color:#313244;}
+ .d2-625576809 .background-color-AB4{background-color:#45475A;}
+ .d2-625576809 .background-color-AB5{background-color:#313244;}
+ .d2-625576809 .color-N1{color:#CDD6F4;}
+ .d2-625576809 .color-N2{color:#BAC2DE;}
+ .d2-625576809 .color-N3{color:#A6ADC8;}
+ .d2-625576809 .color-N4{color:#585B70;}
+ .d2-625576809 .color-N5{color:#45475A;}
+ .d2-625576809 .color-N6{color:#313244;}
+ .d2-625576809 .color-N7{color:#1E1E2E;}
+ .d2-625576809 .color-B1{color:#CBA6f7;}
+ .d2-625576809 .color-B2{color:#CBA6f7;}
+ .d2-625576809 .color-B3{color:#6C7086;}
+ .d2-625576809 .color-B4{color:#585B70;}
+ .d2-625576809 .color-B5{color:#45475A;}
+ .d2-625576809 .color-B6{color:#313244;}
+ .d2-625576809 .color-AA2{color:#f38BA8;}
+ .d2-625576809 .color-AA4{color:#45475A;}
+ .d2-625576809 .color-AA5{color:#313244;}
+ .d2-625576809 .color-AB4{color:#45475A;}
+ .d2-625576809 .color-AB5{color:#313244;}.appendix text.text{fill:#CDD6F4}.md{--color-fg-default:#CDD6F4;--color-fg-muted:#BAC2DE;--color-fg-subtle:#A6ADC8;--color-canvas-default:#1E1E2E;--color-canvas-subtle:#313244;--color-border-default:#CBA6f7;--color-border-muted:#CBA6f7;--color-neutral-muted:#313244;--color-accent-fg:#CBA6f7;--color-accent-emphasis:#CBA6f7;--color-attention-subtle:#BAC2DE;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-B2{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-B3{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-B4{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-B5{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B6{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-AA2{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-AA4{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-AA5{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-AB4{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-AB5{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N1{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N2{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N5{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N6{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N7{fill:url(#streaks-darker);mix-blend-mode:lighten}.light-code{display: none}.dark-code{display: block}]]>winter summer trees snow sun
+
\ No newline at end of file
diff --git a/d2renderers/d2svg/dark_theme/testdata/arrowheads/dark_theme.exp.svg b/d2renderers/d2svg/dark_theme/testdata/arrowheads/dark_theme.exp.svg
index 4bd9a1b42..7fdd127c7 100644
--- a/d2renderers/d2svg/dark_theme/testdata/arrowheads/dark_theme.exp.svg
+++ b/d2renderers/d2svg/dark_theme/testdata/arrowheads/dark_theme.exp.svg
@@ -1,17 +1,17 @@
-1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 none arrow triangle diamond diamond filled cf-many cf-many-required cf-one cf-one-required
-
+ .d2-3125322966 .fill-N1{fill:#CDD6F4;}
+ .d2-3125322966 .fill-N2{fill:#BAC2DE;}
+ .d2-3125322966 .fill-N3{fill:#A6ADC8;}
+ .d2-3125322966 .fill-N4{fill:#585B70;}
+ .d2-3125322966 .fill-N5{fill:#45475A;}
+ .d2-3125322966 .fill-N6{fill:#313244;}
+ .d2-3125322966 .fill-N7{fill:#1E1E2E;}
+ .d2-3125322966 .fill-B1{fill:#CBA6f7;}
+ .d2-3125322966 .fill-B2{fill:#CBA6f7;}
+ .d2-3125322966 .fill-B3{fill:#6C7086;}
+ .d2-3125322966 .fill-B4{fill:#585B70;}
+ .d2-3125322966 .fill-B5{fill:#45475A;}
+ .d2-3125322966 .fill-B6{fill:#313244;}
+ .d2-3125322966 .fill-AA2{fill:#f38BA8;}
+ .d2-3125322966 .fill-AA4{fill:#45475A;}
+ .d2-3125322966 .fill-AA5{fill:#313244;}
+ .d2-3125322966 .fill-AB4{fill:#45475A;}
+ .d2-3125322966 .fill-AB5{fill:#313244;}
+ .d2-3125322966 .stroke-N1{stroke:#CDD6F4;}
+ .d2-3125322966 .stroke-N2{stroke:#BAC2DE;}
+ .d2-3125322966 .stroke-N3{stroke:#A6ADC8;}
+ .d2-3125322966 .stroke-N4{stroke:#585B70;}
+ .d2-3125322966 .stroke-N5{stroke:#45475A;}
+ .d2-3125322966 .stroke-N6{stroke:#313244;}
+ .d2-3125322966 .stroke-N7{stroke:#1E1E2E;}
+ .d2-3125322966 .stroke-B1{stroke:#CBA6f7;}
+ .d2-3125322966 .stroke-B2{stroke:#CBA6f7;}
+ .d2-3125322966 .stroke-B3{stroke:#6C7086;}
+ .d2-3125322966 .stroke-B4{stroke:#585B70;}
+ .d2-3125322966 .stroke-B5{stroke:#45475A;}
+ .d2-3125322966 .stroke-B6{stroke:#313244;}
+ .d2-3125322966 .stroke-AA2{stroke:#f38BA8;}
+ .d2-3125322966 .stroke-AA4{stroke:#45475A;}
+ .d2-3125322966 .stroke-AA5{stroke:#313244;}
+ .d2-3125322966 .stroke-AB4{stroke:#45475A;}
+ .d2-3125322966 .stroke-AB5{stroke:#313244;}
+ .d2-3125322966 .background-color-N1{background-color:#CDD6F4;}
+ .d2-3125322966 .background-color-N2{background-color:#BAC2DE;}
+ .d2-3125322966 .background-color-N3{background-color:#A6ADC8;}
+ .d2-3125322966 .background-color-N4{background-color:#585B70;}
+ .d2-3125322966 .background-color-N5{background-color:#45475A;}
+ .d2-3125322966 .background-color-N6{background-color:#313244;}
+ .d2-3125322966 .background-color-N7{background-color:#1E1E2E;}
+ .d2-3125322966 .background-color-B1{background-color:#CBA6f7;}
+ .d2-3125322966 .background-color-B2{background-color:#CBA6f7;}
+ .d2-3125322966 .background-color-B3{background-color:#6C7086;}
+ .d2-3125322966 .background-color-B4{background-color:#585B70;}
+ .d2-3125322966 .background-color-B5{background-color:#45475A;}
+ .d2-3125322966 .background-color-B6{background-color:#313244;}
+ .d2-3125322966 .background-color-AA2{background-color:#f38BA8;}
+ .d2-3125322966 .background-color-AA4{background-color:#45475A;}
+ .d2-3125322966 .background-color-AA5{background-color:#313244;}
+ .d2-3125322966 .background-color-AB4{background-color:#45475A;}
+ .d2-3125322966 .background-color-AB5{background-color:#313244;}
+ .d2-3125322966 .color-N1{color:#CDD6F4;}
+ .d2-3125322966 .color-N2{color:#BAC2DE;}
+ .d2-3125322966 .color-N3{color:#A6ADC8;}
+ .d2-3125322966 .color-N4{color:#585B70;}
+ .d2-3125322966 .color-N5{color:#45475A;}
+ .d2-3125322966 .color-N6{color:#313244;}
+ .d2-3125322966 .color-N7{color:#1E1E2E;}
+ .d2-3125322966 .color-B1{color:#CBA6f7;}
+ .d2-3125322966 .color-B2{color:#CBA6f7;}
+ .d2-3125322966 .color-B3{color:#6C7086;}
+ .d2-3125322966 .color-B4{color:#585B70;}
+ .d2-3125322966 .color-B5{color:#45475A;}
+ .d2-3125322966 .color-B6{color:#313244;}
+ .d2-3125322966 .color-AA2{color:#f38BA8;}
+ .d2-3125322966 .color-AA4{color:#45475A;}
+ .d2-3125322966 .color-AA5{color:#313244;}
+ .d2-3125322966 .color-AB4{color:#45475A;}
+ .d2-3125322966 .color-AB5{color:#313244;}.appendix text.text{fill:#CDD6F4}.md{--color-fg-default:#CDD6F4;--color-fg-muted:#BAC2DE;--color-fg-subtle:#A6ADC8;--color-canvas-default:#1E1E2E;--color-canvas-subtle:#313244;--color-border-default:#CBA6f7;--color-border-muted:#CBA6f7;--color-neutral-muted:#313244;--color-accent-fg:#CBA6f7;--color-accent-emphasis:#CBA6f7;--color-attention-subtle:#BAC2DE;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-B2{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-B3{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-B4{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-B5{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B6{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-AA2{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-AA4{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-AA5{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-AB4{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-AB5{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N1{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N2{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N5{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N6{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N7{fill:url(#streaks-darker);mix-blend-mode:lighten}.light-code{display: none}.dark-code{display: block}]]>1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 none arrow triangle diamond diamond filled cf-many cf-many-required cf-one cf-one-required
+
diff --git a/d2renderers/d2svg/dark_theme/testdata/basic/dark_theme.exp.svg b/d2renderers/d2svg/dark_theme/testdata/basic/dark_theme.exp.svg
index 748f95c8c..0eee3b115 100644
--- a/d2renderers/d2svg/dark_theme/testdata/basic/dark_theme.exp.svg
+++ b/d2renderers/d2svg/dark_theme/testdata/basic/dark_theme.exp.svg
@@ -1,10 +1,10 @@
-winter summer snow sun
+ .d2-1784090246 .fill-N1{fill:#CDD6F4;}
+ .d2-1784090246 .fill-N2{fill:#BAC2DE;}
+ .d2-1784090246 .fill-N3{fill:#A6ADC8;}
+ .d2-1784090246 .fill-N4{fill:#585B70;}
+ .d2-1784090246 .fill-N5{fill:#45475A;}
+ .d2-1784090246 .fill-N6{fill:#313244;}
+ .d2-1784090246 .fill-N7{fill:#1E1E2E;}
+ .d2-1784090246 .fill-B1{fill:#CBA6f7;}
+ .d2-1784090246 .fill-B2{fill:#CBA6f7;}
+ .d2-1784090246 .fill-B3{fill:#6C7086;}
+ .d2-1784090246 .fill-B4{fill:#585B70;}
+ .d2-1784090246 .fill-B5{fill:#45475A;}
+ .d2-1784090246 .fill-B6{fill:#313244;}
+ .d2-1784090246 .fill-AA2{fill:#f38BA8;}
+ .d2-1784090246 .fill-AA4{fill:#45475A;}
+ .d2-1784090246 .fill-AA5{fill:#313244;}
+ .d2-1784090246 .fill-AB4{fill:#45475A;}
+ .d2-1784090246 .fill-AB5{fill:#313244;}
+ .d2-1784090246 .stroke-N1{stroke:#CDD6F4;}
+ .d2-1784090246 .stroke-N2{stroke:#BAC2DE;}
+ .d2-1784090246 .stroke-N3{stroke:#A6ADC8;}
+ .d2-1784090246 .stroke-N4{stroke:#585B70;}
+ .d2-1784090246 .stroke-N5{stroke:#45475A;}
+ .d2-1784090246 .stroke-N6{stroke:#313244;}
+ .d2-1784090246 .stroke-N7{stroke:#1E1E2E;}
+ .d2-1784090246 .stroke-B1{stroke:#CBA6f7;}
+ .d2-1784090246 .stroke-B2{stroke:#CBA6f7;}
+ .d2-1784090246 .stroke-B3{stroke:#6C7086;}
+ .d2-1784090246 .stroke-B4{stroke:#585B70;}
+ .d2-1784090246 .stroke-B5{stroke:#45475A;}
+ .d2-1784090246 .stroke-B6{stroke:#313244;}
+ .d2-1784090246 .stroke-AA2{stroke:#f38BA8;}
+ .d2-1784090246 .stroke-AA4{stroke:#45475A;}
+ .d2-1784090246 .stroke-AA5{stroke:#313244;}
+ .d2-1784090246 .stroke-AB4{stroke:#45475A;}
+ .d2-1784090246 .stroke-AB5{stroke:#313244;}
+ .d2-1784090246 .background-color-N1{background-color:#CDD6F4;}
+ .d2-1784090246 .background-color-N2{background-color:#BAC2DE;}
+ .d2-1784090246 .background-color-N3{background-color:#A6ADC8;}
+ .d2-1784090246 .background-color-N4{background-color:#585B70;}
+ .d2-1784090246 .background-color-N5{background-color:#45475A;}
+ .d2-1784090246 .background-color-N6{background-color:#313244;}
+ .d2-1784090246 .background-color-N7{background-color:#1E1E2E;}
+ .d2-1784090246 .background-color-B1{background-color:#CBA6f7;}
+ .d2-1784090246 .background-color-B2{background-color:#CBA6f7;}
+ .d2-1784090246 .background-color-B3{background-color:#6C7086;}
+ .d2-1784090246 .background-color-B4{background-color:#585B70;}
+ .d2-1784090246 .background-color-B5{background-color:#45475A;}
+ .d2-1784090246 .background-color-B6{background-color:#313244;}
+ .d2-1784090246 .background-color-AA2{background-color:#f38BA8;}
+ .d2-1784090246 .background-color-AA4{background-color:#45475A;}
+ .d2-1784090246 .background-color-AA5{background-color:#313244;}
+ .d2-1784090246 .background-color-AB4{background-color:#45475A;}
+ .d2-1784090246 .background-color-AB5{background-color:#313244;}
+ .d2-1784090246 .color-N1{color:#CDD6F4;}
+ .d2-1784090246 .color-N2{color:#BAC2DE;}
+ .d2-1784090246 .color-N3{color:#A6ADC8;}
+ .d2-1784090246 .color-N4{color:#585B70;}
+ .d2-1784090246 .color-N5{color:#45475A;}
+ .d2-1784090246 .color-N6{color:#313244;}
+ .d2-1784090246 .color-N7{color:#1E1E2E;}
+ .d2-1784090246 .color-B1{color:#CBA6f7;}
+ .d2-1784090246 .color-B2{color:#CBA6f7;}
+ .d2-1784090246 .color-B3{color:#6C7086;}
+ .d2-1784090246 .color-B4{color:#585B70;}
+ .d2-1784090246 .color-B5{color:#45475A;}
+ .d2-1784090246 .color-B6{color:#313244;}
+ .d2-1784090246 .color-AA2{color:#f38BA8;}
+ .d2-1784090246 .color-AA4{color:#45475A;}
+ .d2-1784090246 .color-AA5{color:#313244;}
+ .d2-1784090246 .color-AB4{color:#45475A;}
+ .d2-1784090246 .color-AB5{color:#313244;}.appendix text.text{fill:#CDD6F4}.md{--color-fg-default:#CDD6F4;--color-fg-muted:#BAC2DE;--color-fg-subtle:#A6ADC8;--color-canvas-default:#1E1E2E;--color-canvas-subtle:#313244;--color-border-default:#CBA6f7;--color-border-muted:#CBA6f7;--color-neutral-muted:#313244;--color-accent-fg:#CBA6f7;--color-accent-emphasis:#CBA6f7;--color-attention-subtle:#BAC2DE;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-B2{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-B3{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-B4{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-B5{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B6{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-AA2{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-AA4{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-AA5{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-AB4{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-AB5{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N1{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N2{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N5{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N6{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N7{fill:url(#streaks-darker);mix-blend-mode:lighten}.light-code{display: none}.dark-code{display: block}]]>winter summer snow sun
\ No newline at end of file
diff --git a/d2renderers/d2svg/dark_theme/testdata/class/dark_theme.exp.svg b/d2renderers/d2svg/dark_theme/testdata/class/dark_theme.exp.svg
index 9d526f64c..77531acfd 100644
--- a/d2renderers/d2svg/dark_theme/testdata/class/dark_theme.exp.svg
+++ b/d2renderers/d2svg/dark_theme/testdata/class/dark_theme.exp.svg
@@ -1,10 +1,10 @@
-a b hello
+ .d2-1320785676 .fill-N1{fill:#CDD6F4;}
+ .d2-1320785676 .fill-N2{fill:#BAC2DE;}
+ .d2-1320785676 .fill-N3{fill:#A6ADC8;}
+ .d2-1320785676 .fill-N4{fill:#585B70;}
+ .d2-1320785676 .fill-N5{fill:#45475A;}
+ .d2-1320785676 .fill-N6{fill:#313244;}
+ .d2-1320785676 .fill-N7{fill:#1E1E2E;}
+ .d2-1320785676 .fill-B1{fill:#CBA6f7;}
+ .d2-1320785676 .fill-B2{fill:#CBA6f7;}
+ .d2-1320785676 .fill-B3{fill:#6C7086;}
+ .d2-1320785676 .fill-B4{fill:#585B70;}
+ .d2-1320785676 .fill-B5{fill:#45475A;}
+ .d2-1320785676 .fill-B6{fill:#313244;}
+ .d2-1320785676 .fill-AA2{fill:#f38BA8;}
+ .d2-1320785676 .fill-AA4{fill:#45475A;}
+ .d2-1320785676 .fill-AA5{fill:#313244;}
+ .d2-1320785676 .fill-AB4{fill:#45475A;}
+ .d2-1320785676 .fill-AB5{fill:#313244;}
+ .d2-1320785676 .stroke-N1{stroke:#CDD6F4;}
+ .d2-1320785676 .stroke-N2{stroke:#BAC2DE;}
+ .d2-1320785676 .stroke-N3{stroke:#A6ADC8;}
+ .d2-1320785676 .stroke-N4{stroke:#585B70;}
+ .d2-1320785676 .stroke-N5{stroke:#45475A;}
+ .d2-1320785676 .stroke-N6{stroke:#313244;}
+ .d2-1320785676 .stroke-N7{stroke:#1E1E2E;}
+ .d2-1320785676 .stroke-B1{stroke:#CBA6f7;}
+ .d2-1320785676 .stroke-B2{stroke:#CBA6f7;}
+ .d2-1320785676 .stroke-B3{stroke:#6C7086;}
+ .d2-1320785676 .stroke-B4{stroke:#585B70;}
+ .d2-1320785676 .stroke-B5{stroke:#45475A;}
+ .d2-1320785676 .stroke-B6{stroke:#313244;}
+ .d2-1320785676 .stroke-AA2{stroke:#f38BA8;}
+ .d2-1320785676 .stroke-AA4{stroke:#45475A;}
+ .d2-1320785676 .stroke-AA5{stroke:#313244;}
+ .d2-1320785676 .stroke-AB4{stroke:#45475A;}
+ .d2-1320785676 .stroke-AB5{stroke:#313244;}
+ .d2-1320785676 .background-color-N1{background-color:#CDD6F4;}
+ .d2-1320785676 .background-color-N2{background-color:#BAC2DE;}
+ .d2-1320785676 .background-color-N3{background-color:#A6ADC8;}
+ .d2-1320785676 .background-color-N4{background-color:#585B70;}
+ .d2-1320785676 .background-color-N5{background-color:#45475A;}
+ .d2-1320785676 .background-color-N6{background-color:#313244;}
+ .d2-1320785676 .background-color-N7{background-color:#1E1E2E;}
+ .d2-1320785676 .background-color-B1{background-color:#CBA6f7;}
+ .d2-1320785676 .background-color-B2{background-color:#CBA6f7;}
+ .d2-1320785676 .background-color-B3{background-color:#6C7086;}
+ .d2-1320785676 .background-color-B4{background-color:#585B70;}
+ .d2-1320785676 .background-color-B5{background-color:#45475A;}
+ .d2-1320785676 .background-color-B6{background-color:#313244;}
+ .d2-1320785676 .background-color-AA2{background-color:#f38BA8;}
+ .d2-1320785676 .background-color-AA4{background-color:#45475A;}
+ .d2-1320785676 .background-color-AA5{background-color:#313244;}
+ .d2-1320785676 .background-color-AB4{background-color:#45475A;}
+ .d2-1320785676 .background-color-AB5{background-color:#313244;}
+ .d2-1320785676 .color-N1{color:#CDD6F4;}
+ .d2-1320785676 .color-N2{color:#BAC2DE;}
+ .d2-1320785676 .color-N3{color:#A6ADC8;}
+ .d2-1320785676 .color-N4{color:#585B70;}
+ .d2-1320785676 .color-N5{color:#45475A;}
+ .d2-1320785676 .color-N6{color:#313244;}
+ .d2-1320785676 .color-N7{color:#1E1E2E;}
+ .d2-1320785676 .color-B1{color:#CBA6f7;}
+ .d2-1320785676 .color-B2{color:#CBA6f7;}
+ .d2-1320785676 .color-B3{color:#6C7086;}
+ .d2-1320785676 .color-B4{color:#585B70;}
+ .d2-1320785676 .color-B5{color:#45475A;}
+ .d2-1320785676 .color-B6{color:#313244;}
+ .d2-1320785676 .color-AA2{color:#f38BA8;}
+ .d2-1320785676 .color-AA4{color:#45475A;}
+ .d2-1320785676 .color-AA5{color:#313244;}
+ .d2-1320785676 .color-AB4{color:#45475A;}
+ .d2-1320785676 .color-AB5{color:#313244;}.appendix text.text{fill:#CDD6F4}.md{--color-fg-default:#CDD6F4;--color-fg-muted:#BAC2DE;--color-fg-subtle:#A6ADC8;--color-canvas-default:#1E1E2E;--color-canvas-subtle:#313244;--color-border-default:#CBA6f7;--color-border-muted:#CBA6f7;--color-neutral-muted:#313244;--color-accent-fg:#CBA6f7;--color-accent-emphasis:#CBA6f7;--color-attention-subtle:#BAC2DE;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-B2{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-B3{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-B4{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-B5{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B6{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-AA2{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-AA4{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-AA5{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-AB4{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-AB5{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N1{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N2{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N5{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N6{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N7{fill:url(#streaks-darker);mix-blend-mode:lighten}.light-code{display: none}.dark-code{display: block}]]>a b hello
\ No newline at end of file
diff --git a/d2renderers/d2svg/dark_theme/testdata/opacity/dark_theme.exp.svg b/d2renderers/d2svg/dark_theme/testdata/opacity/dark_theme.exp.svg
index de6dc7cde..6e5e9a169 100644
--- a/d2renderers/d2svg/dark_theme/testdata/opacity/dark_theme.exp.svg
+++ b/d2renderers/d2svg/dark_theme/testdata/opacity/dark_theme.exp.svg
@@ -1,28 +1,28 @@
-users id int name string email string password string last_login datetime products id int price decimal sku string name string orders id int user_id int product_id int shipments id int order_id int tracking_number string PK status string
+ .d2-2348964013 .fill-N1{fill:#CDD6F4;}
+ .d2-2348964013 .fill-N2{fill:#BAC2DE;}
+ .d2-2348964013 .fill-N3{fill:#A6ADC8;}
+ .d2-2348964013 .fill-N4{fill:#585B70;}
+ .d2-2348964013 .fill-N5{fill:#45475A;}
+ .d2-2348964013 .fill-N6{fill:#313244;}
+ .d2-2348964013 .fill-N7{fill:#1E1E2E;}
+ .d2-2348964013 .fill-B1{fill:#CBA6f7;}
+ .d2-2348964013 .fill-B2{fill:#CBA6f7;}
+ .d2-2348964013 .fill-B3{fill:#6C7086;}
+ .d2-2348964013 .fill-B4{fill:#585B70;}
+ .d2-2348964013 .fill-B5{fill:#45475A;}
+ .d2-2348964013 .fill-B6{fill:#313244;}
+ .d2-2348964013 .fill-AA2{fill:#f38BA8;}
+ .d2-2348964013 .fill-AA4{fill:#45475A;}
+ .d2-2348964013 .fill-AA5{fill:#313244;}
+ .d2-2348964013 .fill-AB4{fill:#45475A;}
+ .d2-2348964013 .fill-AB5{fill:#313244;}
+ .d2-2348964013 .stroke-N1{stroke:#CDD6F4;}
+ .d2-2348964013 .stroke-N2{stroke:#BAC2DE;}
+ .d2-2348964013 .stroke-N3{stroke:#A6ADC8;}
+ .d2-2348964013 .stroke-N4{stroke:#585B70;}
+ .d2-2348964013 .stroke-N5{stroke:#45475A;}
+ .d2-2348964013 .stroke-N6{stroke:#313244;}
+ .d2-2348964013 .stroke-N7{stroke:#1E1E2E;}
+ .d2-2348964013 .stroke-B1{stroke:#CBA6f7;}
+ .d2-2348964013 .stroke-B2{stroke:#CBA6f7;}
+ .d2-2348964013 .stroke-B3{stroke:#6C7086;}
+ .d2-2348964013 .stroke-B4{stroke:#585B70;}
+ .d2-2348964013 .stroke-B5{stroke:#45475A;}
+ .d2-2348964013 .stroke-B6{stroke:#313244;}
+ .d2-2348964013 .stroke-AA2{stroke:#f38BA8;}
+ .d2-2348964013 .stroke-AA4{stroke:#45475A;}
+ .d2-2348964013 .stroke-AA5{stroke:#313244;}
+ .d2-2348964013 .stroke-AB4{stroke:#45475A;}
+ .d2-2348964013 .stroke-AB5{stroke:#313244;}
+ .d2-2348964013 .background-color-N1{background-color:#CDD6F4;}
+ .d2-2348964013 .background-color-N2{background-color:#BAC2DE;}
+ .d2-2348964013 .background-color-N3{background-color:#A6ADC8;}
+ .d2-2348964013 .background-color-N4{background-color:#585B70;}
+ .d2-2348964013 .background-color-N5{background-color:#45475A;}
+ .d2-2348964013 .background-color-N6{background-color:#313244;}
+ .d2-2348964013 .background-color-N7{background-color:#1E1E2E;}
+ .d2-2348964013 .background-color-B1{background-color:#CBA6f7;}
+ .d2-2348964013 .background-color-B2{background-color:#CBA6f7;}
+ .d2-2348964013 .background-color-B3{background-color:#6C7086;}
+ .d2-2348964013 .background-color-B4{background-color:#585B70;}
+ .d2-2348964013 .background-color-B5{background-color:#45475A;}
+ .d2-2348964013 .background-color-B6{background-color:#313244;}
+ .d2-2348964013 .background-color-AA2{background-color:#f38BA8;}
+ .d2-2348964013 .background-color-AA4{background-color:#45475A;}
+ .d2-2348964013 .background-color-AA5{background-color:#313244;}
+ .d2-2348964013 .background-color-AB4{background-color:#45475A;}
+ .d2-2348964013 .background-color-AB5{background-color:#313244;}
+ .d2-2348964013 .color-N1{color:#CDD6F4;}
+ .d2-2348964013 .color-N2{color:#BAC2DE;}
+ .d2-2348964013 .color-N3{color:#A6ADC8;}
+ .d2-2348964013 .color-N4{color:#585B70;}
+ .d2-2348964013 .color-N5{color:#45475A;}
+ .d2-2348964013 .color-N6{color:#313244;}
+ .d2-2348964013 .color-N7{color:#1E1E2E;}
+ .d2-2348964013 .color-B1{color:#CBA6f7;}
+ .d2-2348964013 .color-B2{color:#CBA6f7;}
+ .d2-2348964013 .color-B3{color:#6C7086;}
+ .d2-2348964013 .color-B4{color:#585B70;}
+ .d2-2348964013 .color-B5{color:#45475A;}
+ .d2-2348964013 .color-B6{color:#313244;}
+ .d2-2348964013 .color-AA2{color:#f38BA8;}
+ .d2-2348964013 .color-AA4{color:#45475A;}
+ .d2-2348964013 .color-AA5{color:#313244;}
+ .d2-2348964013 .color-AB4{color:#45475A;}
+ .d2-2348964013 .color-AB5{color:#313244;}.appendix text.text{fill:#CDD6F4}.md{--color-fg-default:#CDD6F4;--color-fg-muted:#BAC2DE;--color-fg-subtle:#A6ADC8;--color-canvas-default:#1E1E2E;--color-canvas-subtle:#313244;--color-border-default:#CBA6f7;--color-border-muted:#CBA6f7;--color-neutral-muted:#313244;--color-accent-fg:#CBA6f7;--color-accent-emphasis:#CBA6f7;--color-attention-subtle:#BAC2DE;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-B2{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-B3{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-B4{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-B5{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B6{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-AA2{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-AA4{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-AA5{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-AB4{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-AB5{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N1{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N2{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N5{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N6{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N7{fill:url(#streaks-darker);mix-blend-mode:lighten}.light-code{display: none}.dark-code{display: block}]]>users id int name string email string password string last_login datetime products id int price decimal sku string name string orders id int user_id int product_id int shipments id int order_id int tracking_number string PK status string
\ No newline at end of file
diff --git a/d2renderers/d2svg/dark_theme/testdata/twitter/dark_theme.exp.svg b/d2renderers/d2svg/dark_theme/testdata/twitter/dark_theme.exp.svg
index fada3154c..80466cf48 100644
--- a/d2renderers/d2svg/dark_theme/testdata/twitter/dark_theme.exp.svg
+++ b/d2renderers/d2svg/dark_theme/testdata/twitter/dark_theme.exp.svg
@@ -1,28 +1,28 @@
-People discovery service Ad mixer Onboarding service Web Iphone Android Timeline Scorer Home Ranker Timeline Service Home mixer Manhattan Gizmoduck Social graph Prediction Service Home Scorer Manhattan Memcache Fetch Feature Scoring Prediction Service ...etc Timeline mixer
+
People discovery service Ad mixer Onboarding service Web Iphone Android Timeline Scorer Home Ranker Timeline Service Home mixer Manhattan Gizmoduck Social graph Prediction Service Home Scorer Manhattan Memcache Fetch Feature Scoring Prediction Service ...etc Timeline mixer
Inject ads, who-to-follow, onboarding
Conversation module
@@ -851,13 +851,13 @@
Tweat deduplication
Served data logging
-
GraphQL Federated Strato Column TLS-API (being deprecated) CrMixer EarlyBird Utag Space Communities Thrift RPC Candidate Fetch Feature Hydration Candidate sources
-
-
-
-
-
-
-
+ GraphQL Federated Strato Column TLS-API (being deprecated) CrMixer EarlyBird Utag Space Communities Thrift RPC Candidate Fetch Feature Hydration Candidate sources
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/d2target/d2target.go b/d2target/d2target.go
index baa6ffc3e..fb7cd0cf2 100644
--- a/d2target/d2target.go
+++ b/d2target/d2target.go
@@ -22,6 +22,8 @@ const (
DEFAULT_ICON_SIZE = 32
MAX_ICON_SIZE = 64
+ SHADOW_SIZE_X = 3
+ SHADOW_SIZE_Y = 5
THREE_DEE_OFFSET = 15
MULTIPLE_OFFSET = 10
@@ -171,9 +173,17 @@ func (diagram Diagram) BoundingBox() (topLeft, bottomRight Point) {
y1 = go2.Min(y1, targetShape.Pos.Y-targetShape.StrokeWidth-16)
x2 = go2.Max(x2, targetShape.Pos.X+targetShape.StrokeWidth+targetShape.Width+16)
}
+ if targetShape.Shadow {
+ y2 = go2.Max(y2, targetShape.Pos.Y+targetShape.Height+int(math.Ceil(float64(targetShape.StrokeWidth)/2.))+SHADOW_SIZE_Y)
+ x2 = go2.Max(x2, targetShape.Pos.X+targetShape.Width+int(math.Ceil(float64(targetShape.StrokeWidth)/2.))+SHADOW_SIZE_X)
+ }
if targetShape.ThreeDee {
- y1 = go2.Min(y1, targetShape.Pos.Y-THREE_DEE_OFFSET-targetShape.StrokeWidth)
+ offsetY := THREE_DEE_OFFSET
+ if targetShape.Type == ShapeHexagon {
+ offsetY /= 2
+ }
+ y1 = go2.Min(y1, targetShape.Pos.Y-offsetY-targetShape.StrokeWidth)
x2 = go2.Max(x2, targetShape.Pos.X+THREE_DEE_OFFSET+targetShape.Width+targetShape.StrokeWidth)
}
if targetShape.Multiple {
@@ -853,6 +863,8 @@ func init() {
for k, v := range DSL_SHAPE_TO_SHAPE_TYPE {
SHAPE_TYPE_TO_DSL_SHAPE[v] = k
}
+ // SQUARE_TYPE is defined twice in the map, make sure it doesn't get set to the empty string one
+ SHAPE_TYPE_TO_DSL_SHAPE[shape.SQUARE_TYPE] = ShapeRectangle
}
func GetIconSize(box *geo.Box, position string) int {
diff --git a/docs/examples/lib/2-d2oracle/d2oracle.go b/docs/examples/lib/2-d2oracle/d2oracle.go
index 763110f07..cb30cfa5a 100644
--- a/docs/examples/lib/2-d2oracle/d2oracle.go
+++ b/docs/examples/lib/2-d2oracle/d2oracle.go
@@ -28,7 +28,7 @@ func main() {
// Create a shape with the ID, "cat"
graph, _, _ = d2oracle.Create(graph, "cat")
// Move the shape "meow" inside the container "cat"
- graph, _ = d2oracle.Move(graph, "meow", "cat.meow")
+ graph, _ = d2oracle.Move(graph, "meow", "cat.meow", false)
// Prints formatted D2 script
fmt.Print(d2format.Format(graph.AST))
}
diff --git a/e2etests-cli/main_test.go b/e2etests-cli/main_test.go
index 6cb634235..7cd61e150 100644
--- a/e2etests-cli/main_test.go
+++ b/e2etests-cli/main_test.go
@@ -5,6 +5,7 @@ import (
"context"
"os"
"path/filepath"
+ "strings"
"testing"
"time"
@@ -76,6 +77,30 @@ func TestCLI_E2E(t *testing.T) {
assert.TestdataDir(t, filepath.Join(dir, "empty-layer"))
},
},
+ {
+ // Skip the empty base board so the animation doesn't show blank for 1400ms
+ name: "empty-base",
+ run: func(t *testing.T, ctx context.Context, dir string, env *xos.Env) {
+ writeFile(t, dir, "empty-base.d2", `steps: {
+ 1: {
+ a -> b
+ }
+ 2: {
+ b -> d
+ c -> d
+ }
+ 3: {
+ d -> e
+ }
+}`)
+
+ err := runTestMain(t, ctx, dir, env, "--animate-interval=1400", "empty-base.d2")
+ assert.Success(t, err)
+ svg := readFile(t, dir, "empty-base.svg")
+ assert.Testdata(t, ".svg", svg)
+ assert.Equal(t, 3, getNumBoards(string(svg)))
+ },
+ },
{
name: "animation",
run: func(t *testing.T, ctx context.Context, dir string, env *xos.Env) {
@@ -447,3 +472,9 @@ func removeD2Files(tb testing.TB, dir string) {
func testdataIgnoreDiff(tb testing.TB, ext string, got []byte) {
_ = diff.Testdata(filepath.Join("testdata", tb.Name()), ext, got)
}
+
+// getNumBoards gets the number of boards in an SVG file through a non-robust pattern search
+// If the renderer changes, this must change
+func getNumBoards(svg string) int {
+ return strings.Count(svg, `class="d2`)
+}
diff --git a/e2etests-cli/testdata/TestCLI_E2E/abspath.exp.svg b/e2etests-cli/testdata/TestCLI_E2E/abspath.exp.svg
index 064c7810b..219a86910 100644
--- a/e2etests-cli/testdata/TestCLI_E2E/abspath.exp.svg
+++ b/e2etests-cli/testdata/TestCLI_E2E/abspath.exp.svg
@@ -1,10 +1,10 @@
-a b
+
+
+ a b d c
+
+
+ a b d c e
+
+
+
\ No newline at end of file
diff --git a/e2etests-cli/testdata/TestCLI_E2E/empty-layer/x.exp.svg b/e2etests-cli/testdata/TestCLI_E2E/empty-layer/x.exp.svg
index dcb5714c0..7df85074f 100644
--- a/e2etests-cli/testdata/TestCLI_E2E/empty-layer/x.exp.svg
+++ b/e2etests-cli/testdata/TestCLI_E2E/empty-layer/x.exp.svg
@@ -1,4 +1,4 @@
-x y
+ .d2-1380559207 .fill-N1{fill:#0A0F25;}
+ .d2-1380559207 .fill-N2{fill:#676C7E;}
+ .d2-1380559207 .fill-N3{fill:#9499AB;}
+ .d2-1380559207 .fill-N4{fill:#CFD2DD;}
+ .d2-1380559207 .fill-N5{fill:#DEE1EB;}
+ .d2-1380559207 .fill-N6{fill:#EEF1F8;}
+ .d2-1380559207 .fill-N7{fill:#FFFFFF;}
+ .d2-1380559207 .fill-B1{fill:#0D32B2;}
+ .d2-1380559207 .fill-B2{fill:#0D32B2;}
+ .d2-1380559207 .fill-B3{fill:#E3E9FD;}
+ .d2-1380559207 .fill-B4{fill:#E3E9FD;}
+ .d2-1380559207 .fill-B5{fill:#EDF0FD;}
+ .d2-1380559207 .fill-B6{fill:#F7F8FE;}
+ .d2-1380559207 .fill-AA2{fill:#4A6FF3;}
+ .d2-1380559207 .fill-AA4{fill:#EDF0FD;}
+ .d2-1380559207 .fill-AA5{fill:#F7F8FE;}
+ .d2-1380559207 .fill-AB4{fill:#EDF0FD;}
+ .d2-1380559207 .fill-AB5{fill:#F7F8FE;}
+ .d2-1380559207 .stroke-N1{stroke:#0A0F25;}
+ .d2-1380559207 .stroke-N2{stroke:#676C7E;}
+ .d2-1380559207 .stroke-N3{stroke:#9499AB;}
+ .d2-1380559207 .stroke-N4{stroke:#CFD2DD;}
+ .d2-1380559207 .stroke-N5{stroke:#DEE1EB;}
+ .d2-1380559207 .stroke-N6{stroke:#EEF1F8;}
+ .d2-1380559207 .stroke-N7{stroke:#FFFFFF;}
+ .d2-1380559207 .stroke-B1{stroke:#0D32B2;}
+ .d2-1380559207 .stroke-B2{stroke:#0D32B2;}
+ .d2-1380559207 .stroke-B3{stroke:#E3E9FD;}
+ .d2-1380559207 .stroke-B4{stroke:#E3E9FD;}
+ .d2-1380559207 .stroke-B5{stroke:#EDF0FD;}
+ .d2-1380559207 .stroke-B6{stroke:#F7F8FE;}
+ .d2-1380559207 .stroke-AA2{stroke:#4A6FF3;}
+ .d2-1380559207 .stroke-AA4{stroke:#EDF0FD;}
+ .d2-1380559207 .stroke-AA5{stroke:#F7F8FE;}
+ .d2-1380559207 .stroke-AB4{stroke:#EDF0FD;}
+ .d2-1380559207 .stroke-AB5{stroke:#F7F8FE;}
+ .d2-1380559207 .background-color-N1{background-color:#0A0F25;}
+ .d2-1380559207 .background-color-N2{background-color:#676C7E;}
+ .d2-1380559207 .background-color-N3{background-color:#9499AB;}
+ .d2-1380559207 .background-color-N4{background-color:#CFD2DD;}
+ .d2-1380559207 .background-color-N5{background-color:#DEE1EB;}
+ .d2-1380559207 .background-color-N6{background-color:#EEF1F8;}
+ .d2-1380559207 .background-color-N7{background-color:#FFFFFF;}
+ .d2-1380559207 .background-color-B1{background-color:#0D32B2;}
+ .d2-1380559207 .background-color-B2{background-color:#0D32B2;}
+ .d2-1380559207 .background-color-B3{background-color:#E3E9FD;}
+ .d2-1380559207 .background-color-B4{background-color:#E3E9FD;}
+ .d2-1380559207 .background-color-B5{background-color:#EDF0FD;}
+ .d2-1380559207 .background-color-B6{background-color:#F7F8FE;}
+ .d2-1380559207 .background-color-AA2{background-color:#4A6FF3;}
+ .d2-1380559207 .background-color-AA4{background-color:#EDF0FD;}
+ .d2-1380559207 .background-color-AA5{background-color:#F7F8FE;}
+ .d2-1380559207 .background-color-AB4{background-color:#EDF0FD;}
+ .d2-1380559207 .background-color-AB5{background-color:#F7F8FE;}
+ .d2-1380559207 .color-N1{color:#0A0F25;}
+ .d2-1380559207 .color-N2{color:#676C7E;}
+ .d2-1380559207 .color-N3{color:#9499AB;}
+ .d2-1380559207 .color-N4{color:#CFD2DD;}
+ .d2-1380559207 .color-N5{color:#DEE1EB;}
+ .d2-1380559207 .color-N6{color:#EEF1F8;}
+ .d2-1380559207 .color-N7{color:#FFFFFF;}
+ .d2-1380559207 .color-B1{color:#0D32B2;}
+ .d2-1380559207 .color-B2{color:#0D32B2;}
+ .d2-1380559207 .color-B3{color:#E3E9FD;}
+ .d2-1380559207 .color-B4{color:#E3E9FD;}
+ .d2-1380559207 .color-B5{color:#EDF0FD;}
+ .d2-1380559207 .color-B6{color:#F7F8FE;}
+ .d2-1380559207 .color-AA2{color:#4A6FF3;}
+ .d2-1380559207 .color-AA4{color:#EDF0FD;}
+ .d2-1380559207 .color-AA5{color:#F7F8FE;}
+ .d2-1380559207 .color-AB4{color:#EDF0FD;}
+ .d2-1380559207 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>x y
diff --git a/e2etests-cli/testdata/TestCLI_E2E/multiboard/life/layers/broker.exp.svg b/e2etests-cli/testdata/TestCLI_E2E/multiboard/life/layers/broker.exp.svg
index a7401d83a..3dced60d4 100644
--- a/e2etests-cli/testdata/TestCLI_E2E/multiboard/life/layers/broker.exp.svg
+++ b/e2etests-cli/testdata/TestCLI_E2E/multiboard/life/layers/broker.exp.svg
@@ -1,10 +1,10 @@
-x y
+ .d2-2561523587 .fill-N1{fill:#0A0F25;}
+ .d2-2561523587 .fill-N2{fill:#676C7E;}
+ .d2-2561523587 .fill-N3{fill:#9499AB;}
+ .d2-2561523587 .fill-N4{fill:#CFD2DD;}
+ .d2-2561523587 .fill-N5{fill:#DEE1EB;}
+ .d2-2561523587 .fill-N6{fill:#EEF1F8;}
+ .d2-2561523587 .fill-N7{fill:#FFFFFF;}
+ .d2-2561523587 .fill-B1{fill:#0D32B2;}
+ .d2-2561523587 .fill-B2{fill:#0D32B2;}
+ .d2-2561523587 .fill-B3{fill:#E3E9FD;}
+ .d2-2561523587 .fill-B4{fill:#E3E9FD;}
+ .d2-2561523587 .fill-B5{fill:#EDF0FD;}
+ .d2-2561523587 .fill-B6{fill:#F7F8FE;}
+ .d2-2561523587 .fill-AA2{fill:#4A6FF3;}
+ .d2-2561523587 .fill-AA4{fill:#EDF0FD;}
+ .d2-2561523587 .fill-AA5{fill:#F7F8FE;}
+ .d2-2561523587 .fill-AB4{fill:#EDF0FD;}
+ .d2-2561523587 .fill-AB5{fill:#F7F8FE;}
+ .d2-2561523587 .stroke-N1{stroke:#0A0F25;}
+ .d2-2561523587 .stroke-N2{stroke:#676C7E;}
+ .d2-2561523587 .stroke-N3{stroke:#9499AB;}
+ .d2-2561523587 .stroke-N4{stroke:#CFD2DD;}
+ .d2-2561523587 .stroke-N5{stroke:#DEE1EB;}
+ .d2-2561523587 .stroke-N6{stroke:#EEF1F8;}
+ .d2-2561523587 .stroke-N7{stroke:#FFFFFF;}
+ .d2-2561523587 .stroke-B1{stroke:#0D32B2;}
+ .d2-2561523587 .stroke-B2{stroke:#0D32B2;}
+ .d2-2561523587 .stroke-B3{stroke:#E3E9FD;}
+ .d2-2561523587 .stroke-B4{stroke:#E3E9FD;}
+ .d2-2561523587 .stroke-B5{stroke:#EDF0FD;}
+ .d2-2561523587 .stroke-B6{stroke:#F7F8FE;}
+ .d2-2561523587 .stroke-AA2{stroke:#4A6FF3;}
+ .d2-2561523587 .stroke-AA4{stroke:#EDF0FD;}
+ .d2-2561523587 .stroke-AA5{stroke:#F7F8FE;}
+ .d2-2561523587 .stroke-AB4{stroke:#EDF0FD;}
+ .d2-2561523587 .stroke-AB5{stroke:#F7F8FE;}
+ .d2-2561523587 .background-color-N1{background-color:#0A0F25;}
+ .d2-2561523587 .background-color-N2{background-color:#676C7E;}
+ .d2-2561523587 .background-color-N3{background-color:#9499AB;}
+ .d2-2561523587 .background-color-N4{background-color:#CFD2DD;}
+ .d2-2561523587 .background-color-N5{background-color:#DEE1EB;}
+ .d2-2561523587 .background-color-N6{background-color:#EEF1F8;}
+ .d2-2561523587 .background-color-N7{background-color:#FFFFFF;}
+ .d2-2561523587 .background-color-B1{background-color:#0D32B2;}
+ .d2-2561523587 .background-color-B2{background-color:#0D32B2;}
+ .d2-2561523587 .background-color-B3{background-color:#E3E9FD;}
+ .d2-2561523587 .background-color-B4{background-color:#E3E9FD;}
+ .d2-2561523587 .background-color-B5{background-color:#EDF0FD;}
+ .d2-2561523587 .background-color-B6{background-color:#F7F8FE;}
+ .d2-2561523587 .background-color-AA2{background-color:#4A6FF3;}
+ .d2-2561523587 .background-color-AA4{background-color:#EDF0FD;}
+ .d2-2561523587 .background-color-AA5{background-color:#F7F8FE;}
+ .d2-2561523587 .background-color-AB4{background-color:#EDF0FD;}
+ .d2-2561523587 .background-color-AB5{background-color:#F7F8FE;}
+ .d2-2561523587 .color-N1{color:#0A0F25;}
+ .d2-2561523587 .color-N2{color:#676C7E;}
+ .d2-2561523587 .color-N3{color:#9499AB;}
+ .d2-2561523587 .color-N4{color:#CFD2DD;}
+ .d2-2561523587 .color-N5{color:#DEE1EB;}
+ .d2-2561523587 .color-N6{color:#EEF1F8;}
+ .d2-2561523587 .color-N7{color:#FFFFFF;}
+ .d2-2561523587 .color-B1{color:#0D32B2;}
+ .d2-2561523587 .color-B2{color:#0D32B2;}
+ .d2-2561523587 .color-B3{color:#E3E9FD;}
+ .d2-2561523587 .color-B4{color:#E3E9FD;}
+ .d2-2561523587 .color-B5{color:#EDF0FD;}
+ .d2-2561523587 .color-B6{color:#F7F8FE;}
+ .d2-2561523587 .color-AA2{color:#4A6FF3;}
+ .d2-2561523587 .color-AA4{color:#EDF0FD;}
+ .d2-2561523587 .color-AA5{color:#F7F8FE;}
+ .d2-2561523587 .color-AB4{color:#EDF0FD;}
+ .d2-2561523587 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>x y
diff --git a/e2etests-cli/testdata/TestCLI_E2E/multiboard/life_index_d2/index.exp.svg b/e2etests-cli/testdata/TestCLI_E2E/multiboard/life_index_d2/index.exp.svg
index 92bfb917e..fc5ff4aa1 100644
--- a/e2etests-cli/testdata/TestCLI_E2E/multiboard/life_index_d2/index.exp.svg
+++ b/e2etests-cli/testdata/TestCLI_E2E/multiboard/life_index_d2/index.exp.svg
@@ -1,10 +1,10 @@
-x y
+ .d2-1380559207 .fill-N1{fill:#0A0F25;}
+ .d2-1380559207 .fill-N2{fill:#676C7E;}
+ .d2-1380559207 .fill-N3{fill:#9499AB;}
+ .d2-1380559207 .fill-N4{fill:#CFD2DD;}
+ .d2-1380559207 .fill-N5{fill:#DEE1EB;}
+ .d2-1380559207 .fill-N6{fill:#EEF1F8;}
+ .d2-1380559207 .fill-N7{fill:#FFFFFF;}
+ .d2-1380559207 .fill-B1{fill:#0D32B2;}
+ .d2-1380559207 .fill-B2{fill:#0D32B2;}
+ .d2-1380559207 .fill-B3{fill:#E3E9FD;}
+ .d2-1380559207 .fill-B4{fill:#E3E9FD;}
+ .d2-1380559207 .fill-B5{fill:#EDF0FD;}
+ .d2-1380559207 .fill-B6{fill:#F7F8FE;}
+ .d2-1380559207 .fill-AA2{fill:#4A6FF3;}
+ .d2-1380559207 .fill-AA4{fill:#EDF0FD;}
+ .d2-1380559207 .fill-AA5{fill:#F7F8FE;}
+ .d2-1380559207 .fill-AB4{fill:#EDF0FD;}
+ .d2-1380559207 .fill-AB5{fill:#F7F8FE;}
+ .d2-1380559207 .stroke-N1{stroke:#0A0F25;}
+ .d2-1380559207 .stroke-N2{stroke:#676C7E;}
+ .d2-1380559207 .stroke-N3{stroke:#9499AB;}
+ .d2-1380559207 .stroke-N4{stroke:#CFD2DD;}
+ .d2-1380559207 .stroke-N5{stroke:#DEE1EB;}
+ .d2-1380559207 .stroke-N6{stroke:#EEF1F8;}
+ .d2-1380559207 .stroke-N7{stroke:#FFFFFF;}
+ .d2-1380559207 .stroke-B1{stroke:#0D32B2;}
+ .d2-1380559207 .stroke-B2{stroke:#0D32B2;}
+ .d2-1380559207 .stroke-B3{stroke:#E3E9FD;}
+ .d2-1380559207 .stroke-B4{stroke:#E3E9FD;}
+ .d2-1380559207 .stroke-B5{stroke:#EDF0FD;}
+ .d2-1380559207 .stroke-B6{stroke:#F7F8FE;}
+ .d2-1380559207 .stroke-AA2{stroke:#4A6FF3;}
+ .d2-1380559207 .stroke-AA4{stroke:#EDF0FD;}
+ .d2-1380559207 .stroke-AA5{stroke:#F7F8FE;}
+ .d2-1380559207 .stroke-AB4{stroke:#EDF0FD;}
+ .d2-1380559207 .stroke-AB5{stroke:#F7F8FE;}
+ .d2-1380559207 .background-color-N1{background-color:#0A0F25;}
+ .d2-1380559207 .background-color-N2{background-color:#676C7E;}
+ .d2-1380559207 .background-color-N3{background-color:#9499AB;}
+ .d2-1380559207 .background-color-N4{background-color:#CFD2DD;}
+ .d2-1380559207 .background-color-N5{background-color:#DEE1EB;}
+ .d2-1380559207 .background-color-N6{background-color:#EEF1F8;}
+ .d2-1380559207 .background-color-N7{background-color:#FFFFFF;}
+ .d2-1380559207 .background-color-B1{background-color:#0D32B2;}
+ .d2-1380559207 .background-color-B2{background-color:#0D32B2;}
+ .d2-1380559207 .background-color-B3{background-color:#E3E9FD;}
+ .d2-1380559207 .background-color-B4{background-color:#E3E9FD;}
+ .d2-1380559207 .background-color-B5{background-color:#EDF0FD;}
+ .d2-1380559207 .background-color-B6{background-color:#F7F8FE;}
+ .d2-1380559207 .background-color-AA2{background-color:#4A6FF3;}
+ .d2-1380559207 .background-color-AA4{background-color:#EDF0FD;}
+ .d2-1380559207 .background-color-AA5{background-color:#F7F8FE;}
+ .d2-1380559207 .background-color-AB4{background-color:#EDF0FD;}
+ .d2-1380559207 .background-color-AB5{background-color:#F7F8FE;}
+ .d2-1380559207 .color-N1{color:#0A0F25;}
+ .d2-1380559207 .color-N2{color:#676C7E;}
+ .d2-1380559207 .color-N3{color:#9499AB;}
+ .d2-1380559207 .color-N4{color:#CFD2DD;}
+ .d2-1380559207 .color-N5{color:#DEE1EB;}
+ .d2-1380559207 .color-N6{color:#EEF1F8;}
+ .d2-1380559207 .color-N7{color:#FFFFFF;}
+ .d2-1380559207 .color-B1{color:#0D32B2;}
+ .d2-1380559207 .color-B2{color:#0D32B2;}
+ .d2-1380559207 .color-B3{color:#E3E9FD;}
+ .d2-1380559207 .color-B4{color:#E3E9FD;}
+ .d2-1380559207 .color-B5{color:#EDF0FD;}
+ .d2-1380559207 .color-B6{color:#F7F8FE;}
+ .d2-1380559207 .color-AA2{color:#4A6FF3;}
+ .d2-1380559207 .color-AA4{color:#EDF0FD;}
+ .d2-1380559207 .color-AA5{color:#F7F8FE;}
+ .d2-1380559207 .color-AB4{color:#EDF0FD;}
+ .d2-1380559207 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>x y
diff --git a/e2etests-cli/testdata/TestCLI_E2E/multiboard/life_index_d2/layers/broker.exp.svg b/e2etests-cli/testdata/TestCLI_E2E/multiboard/life_index_d2/layers/broker.exp.svg
index a7401d83a..3dced60d4 100644
--- a/e2etests-cli/testdata/TestCLI_E2E/multiboard/life_index_d2/layers/broker.exp.svg
+++ b/e2etests-cli/testdata/TestCLI_E2E/multiboard/life_index_d2/layers/broker.exp.svg
@@ -1,10 +1,10 @@
-x y
+ .d2-2561523587 .fill-N1{fill:#0A0F25;}
+ .d2-2561523587 .fill-N2{fill:#676C7E;}
+ .d2-2561523587 .fill-N3{fill:#9499AB;}
+ .d2-2561523587 .fill-N4{fill:#CFD2DD;}
+ .d2-2561523587 .fill-N5{fill:#DEE1EB;}
+ .d2-2561523587 .fill-N6{fill:#EEF1F8;}
+ .d2-2561523587 .fill-N7{fill:#FFFFFF;}
+ .d2-2561523587 .fill-B1{fill:#0D32B2;}
+ .d2-2561523587 .fill-B2{fill:#0D32B2;}
+ .d2-2561523587 .fill-B3{fill:#E3E9FD;}
+ .d2-2561523587 .fill-B4{fill:#E3E9FD;}
+ .d2-2561523587 .fill-B5{fill:#EDF0FD;}
+ .d2-2561523587 .fill-B6{fill:#F7F8FE;}
+ .d2-2561523587 .fill-AA2{fill:#4A6FF3;}
+ .d2-2561523587 .fill-AA4{fill:#EDF0FD;}
+ .d2-2561523587 .fill-AA5{fill:#F7F8FE;}
+ .d2-2561523587 .fill-AB4{fill:#EDF0FD;}
+ .d2-2561523587 .fill-AB5{fill:#F7F8FE;}
+ .d2-2561523587 .stroke-N1{stroke:#0A0F25;}
+ .d2-2561523587 .stroke-N2{stroke:#676C7E;}
+ .d2-2561523587 .stroke-N3{stroke:#9499AB;}
+ .d2-2561523587 .stroke-N4{stroke:#CFD2DD;}
+ .d2-2561523587 .stroke-N5{stroke:#DEE1EB;}
+ .d2-2561523587 .stroke-N6{stroke:#EEF1F8;}
+ .d2-2561523587 .stroke-N7{stroke:#FFFFFF;}
+ .d2-2561523587 .stroke-B1{stroke:#0D32B2;}
+ .d2-2561523587 .stroke-B2{stroke:#0D32B2;}
+ .d2-2561523587 .stroke-B3{stroke:#E3E9FD;}
+ .d2-2561523587 .stroke-B4{stroke:#E3E9FD;}
+ .d2-2561523587 .stroke-B5{stroke:#EDF0FD;}
+ .d2-2561523587 .stroke-B6{stroke:#F7F8FE;}
+ .d2-2561523587 .stroke-AA2{stroke:#4A6FF3;}
+ .d2-2561523587 .stroke-AA4{stroke:#EDF0FD;}
+ .d2-2561523587 .stroke-AA5{stroke:#F7F8FE;}
+ .d2-2561523587 .stroke-AB4{stroke:#EDF0FD;}
+ .d2-2561523587 .stroke-AB5{stroke:#F7F8FE;}
+ .d2-2561523587 .background-color-N1{background-color:#0A0F25;}
+ .d2-2561523587 .background-color-N2{background-color:#676C7E;}
+ .d2-2561523587 .background-color-N3{background-color:#9499AB;}
+ .d2-2561523587 .background-color-N4{background-color:#CFD2DD;}
+ .d2-2561523587 .background-color-N5{background-color:#DEE1EB;}
+ .d2-2561523587 .background-color-N6{background-color:#EEF1F8;}
+ .d2-2561523587 .background-color-N7{background-color:#FFFFFF;}
+ .d2-2561523587 .background-color-B1{background-color:#0D32B2;}
+ .d2-2561523587 .background-color-B2{background-color:#0D32B2;}
+ .d2-2561523587 .background-color-B3{background-color:#E3E9FD;}
+ .d2-2561523587 .background-color-B4{background-color:#E3E9FD;}
+ .d2-2561523587 .background-color-B5{background-color:#EDF0FD;}
+ .d2-2561523587 .background-color-B6{background-color:#F7F8FE;}
+ .d2-2561523587 .background-color-AA2{background-color:#4A6FF3;}
+ .d2-2561523587 .background-color-AA4{background-color:#EDF0FD;}
+ .d2-2561523587 .background-color-AA5{background-color:#F7F8FE;}
+ .d2-2561523587 .background-color-AB4{background-color:#EDF0FD;}
+ .d2-2561523587 .background-color-AB5{background-color:#F7F8FE;}
+ .d2-2561523587 .color-N1{color:#0A0F25;}
+ .d2-2561523587 .color-N2{color:#676C7E;}
+ .d2-2561523587 .color-N3{color:#9499AB;}
+ .d2-2561523587 .color-N4{color:#CFD2DD;}
+ .d2-2561523587 .color-N5{color:#DEE1EB;}
+ .d2-2561523587 .color-N6{color:#EEF1F8;}
+ .d2-2561523587 .color-N7{color:#FFFFFF;}
+ .d2-2561523587 .color-B1{color:#0D32B2;}
+ .d2-2561523587 .color-B2{color:#0D32B2;}
+ .d2-2561523587 .color-B3{color:#E3E9FD;}
+ .d2-2561523587 .color-B4{color:#E3E9FD;}
+ .d2-2561523587 .color-B5{color:#EDF0FD;}
+ .d2-2561523587 .color-B6{color:#F7F8FE;}
+ .d2-2561523587 .color-AA2{color:#4A6FF3;}
+ .d2-2561523587 .color-AA4{color:#EDF0FD;}
+ .d2-2561523587 .color-AA5{color:#F7F8FE;}
+ .d2-2561523587 .color-AB4{color:#EDF0FD;}
+ .d2-2561523587 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>x y
diff --git a/e2etests-cli/testdata/TestCLI_E2E/stdin.exp.svg b/e2etests-cli/testdata/TestCLI_E2E/stdin.exp.svg
index 064c7810b..219a86910 100644
--- a/e2etests-cli/testdata/TestCLI_E2E/stdin.exp.svg
+++ b/e2etests-cli/testdata/TestCLI_E2E/stdin.exp.svg
@@ -1,10 +1,10 @@
-Why do computers get sick often? Because their Windows are always open! italic font
+ .d2-2631895454 .fill-N1{fill:#0A0F25;}
+ .d2-2631895454 .fill-N2{fill:#676C7E;}
+ .d2-2631895454 .fill-N3{fill:#9499AB;}
+ .d2-2631895454 .fill-N4{fill:#CFD2DD;}
+ .d2-2631895454 .fill-N5{fill:#DEE1EB;}
+ .d2-2631895454 .fill-N6{fill:#EEF1F8;}
+ .d2-2631895454 .fill-N7{fill:#FFFFFF;}
+ .d2-2631895454 .fill-B1{fill:#0D32B2;}
+ .d2-2631895454 .fill-B2{fill:#0D32B2;}
+ .d2-2631895454 .fill-B3{fill:#E3E9FD;}
+ .d2-2631895454 .fill-B4{fill:#E3E9FD;}
+ .d2-2631895454 .fill-B5{fill:#EDF0FD;}
+ .d2-2631895454 .fill-B6{fill:#F7F8FE;}
+ .d2-2631895454 .fill-AA2{fill:#4A6FF3;}
+ .d2-2631895454 .fill-AA4{fill:#EDF0FD;}
+ .d2-2631895454 .fill-AA5{fill:#F7F8FE;}
+ .d2-2631895454 .fill-AB4{fill:#EDF0FD;}
+ .d2-2631895454 .fill-AB5{fill:#F7F8FE;}
+ .d2-2631895454 .stroke-N1{stroke:#0A0F25;}
+ .d2-2631895454 .stroke-N2{stroke:#676C7E;}
+ .d2-2631895454 .stroke-N3{stroke:#9499AB;}
+ .d2-2631895454 .stroke-N4{stroke:#CFD2DD;}
+ .d2-2631895454 .stroke-N5{stroke:#DEE1EB;}
+ .d2-2631895454 .stroke-N6{stroke:#EEF1F8;}
+ .d2-2631895454 .stroke-N7{stroke:#FFFFFF;}
+ .d2-2631895454 .stroke-B1{stroke:#0D32B2;}
+ .d2-2631895454 .stroke-B2{stroke:#0D32B2;}
+ .d2-2631895454 .stroke-B3{stroke:#E3E9FD;}
+ .d2-2631895454 .stroke-B4{stroke:#E3E9FD;}
+ .d2-2631895454 .stroke-B5{stroke:#EDF0FD;}
+ .d2-2631895454 .stroke-B6{stroke:#F7F8FE;}
+ .d2-2631895454 .stroke-AA2{stroke:#4A6FF3;}
+ .d2-2631895454 .stroke-AA4{stroke:#EDF0FD;}
+ .d2-2631895454 .stroke-AA5{stroke:#F7F8FE;}
+ .d2-2631895454 .stroke-AB4{stroke:#EDF0FD;}
+ .d2-2631895454 .stroke-AB5{stroke:#F7F8FE;}
+ .d2-2631895454 .background-color-N1{background-color:#0A0F25;}
+ .d2-2631895454 .background-color-N2{background-color:#676C7E;}
+ .d2-2631895454 .background-color-N3{background-color:#9499AB;}
+ .d2-2631895454 .background-color-N4{background-color:#CFD2DD;}
+ .d2-2631895454 .background-color-N5{background-color:#DEE1EB;}
+ .d2-2631895454 .background-color-N6{background-color:#EEF1F8;}
+ .d2-2631895454 .background-color-N7{background-color:#FFFFFF;}
+ .d2-2631895454 .background-color-B1{background-color:#0D32B2;}
+ .d2-2631895454 .background-color-B2{background-color:#0D32B2;}
+ .d2-2631895454 .background-color-B3{background-color:#E3E9FD;}
+ .d2-2631895454 .background-color-B4{background-color:#E3E9FD;}
+ .d2-2631895454 .background-color-B5{background-color:#EDF0FD;}
+ .d2-2631895454 .background-color-B6{background-color:#F7F8FE;}
+ .d2-2631895454 .background-color-AA2{background-color:#4A6FF3;}
+ .d2-2631895454 .background-color-AA4{background-color:#EDF0FD;}
+ .d2-2631895454 .background-color-AA5{background-color:#F7F8FE;}
+ .d2-2631895454 .background-color-AB4{background-color:#EDF0FD;}
+ .d2-2631895454 .background-color-AB5{background-color:#F7F8FE;}
+ .d2-2631895454 .color-N1{color:#0A0F25;}
+ .d2-2631895454 .color-N2{color:#676C7E;}
+ .d2-2631895454 .color-N3{color:#9499AB;}
+ .d2-2631895454 .color-N4{color:#CFD2DD;}
+ .d2-2631895454 .color-N5{color:#DEE1EB;}
+ .d2-2631895454 .color-N6{color:#EEF1F8;}
+ .d2-2631895454 .color-N7{color:#FFFFFF;}
+ .d2-2631895454 .color-B1{color:#0D32B2;}
+ .d2-2631895454 .color-B2{color:#0D32B2;}
+ .d2-2631895454 .color-B3{color:#E3E9FD;}
+ .d2-2631895454 .color-B4{color:#E3E9FD;}
+ .d2-2631895454 .color-B5{color:#EDF0FD;}
+ .d2-2631895454 .color-B6{color:#F7F8FE;}
+ .d2-2631895454 .color-AA2{color:#4A6FF3;}
+ .d2-2631895454 .color-AA4{color:#EDF0FD;}
+ .d2-2631895454 .color-AA5{color:#F7F8FE;}
+ .d2-2631895454 .color-AB4{color:#EDF0FD;}
+ .d2-2631895454 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>Why do computers get sick often? Because their Windows are always open! italic font
diff --git a/e2etests/measured_test.go b/e2etests/measured_test.go
index 3c33c5c24..777fda482 100644
--- a/e2etests/measured_test.go
+++ b/e2etests/measured_test.go
@@ -26,14 +26,6 @@ func testMeasured(t *testing.T) {
name: "empty-sql_table",
mtexts: []*d2target.MText{},
script: `a: "" { shape: sql_table }
-`,
- },
- {
- name: "empty-markdown",
- mtexts: []*d2target.MText{},
- script: `a: |md
-` + " " + `
-|
`,
},
}
diff --git a/e2etests/regression_test.go b/e2etests/regression_test.go
index a2d16828f..be778d758 100644
--- a/e2etests/regression_test.go
+++ b/e2etests/regression_test.go
@@ -929,23 +929,11 @@ cf many required: {
style.stroke-width: 8
}
}
-`,
- },
- {
- name: "empty_md_measurement",
- script: `
-a
-b: |md
-
-
-|
-c
-d
-a -> b -> c
`,
},
loadFromFile(t, "slow_grid"),
loadFromFile(t, "grid_oom"),
+ loadFromFile(t, "cylinder_grid_label"),
}
runa(t, tcs)
diff --git a/e2etests/stable_test.go b/e2etests/stable_test.go
index e65916494..977eaba8f 100644
--- a/e2etests/stable_test.go
+++ b/e2etests/stable_test.go
@@ -2744,6 +2744,13 @@ scenarios: {
loadFromFile(t, "grid_even"),
loadFromFile(t, "ent2d2_basic"),
loadFromFile(t, "ent2d2_right"),
+ loadFromFile(t, "grid_large_checkered"),
+ loadFromFile(t, "grid_nested"),
+ loadFromFile(t, "grid_nested_gap0"),
+ loadFromFile(t, "grid_icon"),
+ loadFromFile(t, "multiple_offset"),
+ loadFromFile(t, "multiple_offset_left"),
+ loadFromFile(t, "multiple_box_selection"),
}
runa(t, tcs)
diff --git a/e2etests/testdata/files/cylinder_grid_label.d2 b/e2etests/testdata/files/cylinder_grid_label.d2
new file mode 100644
index 000000000..a5048b659
--- /dev/null
+++ b/e2etests/testdata/files/cylinder_grid_label.d2
@@ -0,0 +1,6 @@
+container title is hidden: {
+ shape: cylinder
+ grid-columns: 1
+ first
+ second
+}
diff --git a/e2etests/testdata/files/grid_icon.d2 b/e2etests/testdata/files/grid_icon.d2
new file mode 100644
index 000000000..40fdce41e
--- /dev/null
+++ b/e2etests/testdata/files/grid_icon.d2
@@ -0,0 +1,67 @@
+classes: {
+ 2x2: {
+ grid-rows: 2
+ grid-columns: 2
+ }
+}
+
+grid w/ container + icon: {
+ class: 2x2
+
+ a
+ b: {
+ b child
+
+ icon: https://icons.terrastruct.com/dev%2Fgithub.svg
+ }
+ c
+ d
+}
+
+grid + icon: {
+ class: 2x2
+
+ icon: https://icons.terrastruct.com/dev%2Fgithub.svg
+
+ a
+ b
+ c
+ d
+}
+
+grid + icon w/ container: {
+ class: 2x2
+
+ icon: https://icons.terrastruct.com/dev%2Fgithub.svg
+
+ a
+ b: {
+ b child
+ }
+ c
+ d
+}
+
+no label grid w/ container + icon: "" {
+ class: 2x2
+
+ a
+ b: {
+ b child
+
+ icon: https://icons.terrastruct.com/dev%2Fgithub.svg
+ }
+ c
+ d
+}
+
+no label grid + icon: "" {
+ class: 2x2
+
+ icon: https://icons.terrastruct.com/dev%2Fgithub.svg
+
+ a
+ b
+ c
+ d
+}
diff --git a/e2etests/testdata/files/grid_large_checkered.d2 b/e2etests/testdata/files/grid_large_checkered.d2
new file mode 100644
index 000000000..e99459485
--- /dev/null
+++ b/e2etests/testdata/files/grid_large_checkered.d2
@@ -0,0 +1,446 @@
+classes.BLACK: {style.fill: black; style.stroke-width: 0}
+classes.WHITE: {style.fill: white; style.stroke-width: 0}
+# grid-rows: 21
+grid-columns: 21
+grid-gap: 0
+1: "" {class: BLACK}
+2: "" {class: WHITE}
+3: "" {class: BLACK}
+4: "" {class: WHITE}
+5: "" {class: BLACK}
+6: "" {class: WHITE}
+7: "" {class: BLACK}
+8: "" {class: WHITE}
+9: "" {class: BLACK}
+10: "" {class: WHITE}
+11: "" {class: BLACK}
+12: "" {class: WHITE}
+13: "" {class: BLACK}
+14: "" {class: WHITE}
+15: "" {class: BLACK}
+16: "" {class: WHITE}
+17: "" {class: BLACK}
+18: "" {class: WHITE}
+19: "" {class: BLACK}
+20: "" {class: WHITE}
+21: "" {class: BLACK}
+22: "" {class: WHITE}
+23: "" {class: BLACK}
+24: "" {class: WHITE}
+25: "" {class: BLACK}
+26: "" {class: WHITE}
+27: "" {class: BLACK}
+28: "" {class: WHITE}
+29: "" {class: BLACK}
+30: "" {class: WHITE}
+31: "" {class: BLACK}
+32: "" {class: WHITE}
+33: "" {class: BLACK}
+34: "" {class: WHITE}
+35: "" {class: BLACK}
+36: "" {class: WHITE}
+37: "" {class: BLACK}
+38: "" {class: WHITE}
+39: "" {class: BLACK}
+40: "" {class: WHITE}
+41: "" {class: BLACK}
+42: "" {class: WHITE}
+43: "" {class: BLACK}
+44: "" {class: WHITE}
+45: "" {class: BLACK}
+46: "" {class: WHITE}
+47: "" {class: BLACK}
+48: "" {class: WHITE}
+49: "" {class: BLACK}
+50: "" {class: WHITE}
+51: "" {class: BLACK}
+52: "" {class: WHITE}
+53: "" {class: BLACK}
+54: "" {class: WHITE}
+55: "" {class: BLACK}
+56: "" {class: WHITE}
+57: "" {class: BLACK}
+58: "" {class: WHITE}
+59: "" {class: BLACK}
+60: "" {class: WHITE}
+61: "" {class: BLACK}
+62: "" {class: WHITE}
+63: "" {class: BLACK}
+64: "" {class: WHITE}
+65: "" {class: BLACK}
+66: "" {class: WHITE}
+67: "" {class: BLACK}
+68: "" {class: WHITE}
+69: "" {class: BLACK}
+70: "" {class: WHITE}
+71: "" {class: BLACK}
+72: "" {class: WHITE}
+73: "" {class: BLACK}
+74: "" {class: WHITE}
+75: "" {class: BLACK}
+76: "" {class: WHITE}
+77: "" {class: BLACK}
+78: "" {class: WHITE}
+79: "" {class: BLACK}
+80: "" {class: WHITE}
+81: "" {class: BLACK}
+82: "" {class: WHITE}
+83: "" {class: BLACK}
+84: "" {class: WHITE}
+85: "" {class: BLACK}
+86: "" {class: WHITE}
+87: "" {class: BLACK}
+88: "" {class: WHITE}
+89: "" {class: BLACK}
+90: "" {class: WHITE}
+91: "" {class: BLACK}
+92: "" {class: WHITE}
+93: "" {class: BLACK}
+94: "" {class: WHITE}
+95: "" {class: BLACK}
+96: "" {class: WHITE}
+97: "" {class: BLACK}
+98: "" {class: WHITE}
+99: "" {class: BLACK}
+100: "" {class: WHITE}
+101: "" {class: BLACK}
+102: "" {class: WHITE}
+103: "" {class: BLACK}
+104: "" {class: WHITE}
+105: "" {class: BLACK}
+106: "" {class: WHITE}
+107: "" {class: BLACK}
+108: "" {class: WHITE}
+109: "" {class: BLACK}
+110: "" {class: WHITE}
+111: "" {class: BLACK}
+112: "" {class: WHITE}
+113: "" {class: BLACK}
+114: "" {class: WHITE}
+115: "" {class: BLACK}
+116: "" {class: WHITE}
+117: "" {class: BLACK}
+118: "" {class: WHITE}
+119: "" {class: BLACK}
+120: "" {class: WHITE}
+121: "" {class: BLACK}
+122: "" {class: WHITE}
+123: "" {class: BLACK}
+124: "" {class: WHITE}
+125: "" {class: BLACK}
+126: "" {class: WHITE}
+127: "" {class: BLACK}
+128: "" {class: WHITE}
+129: "" {class: BLACK}
+130: "" {class: WHITE}
+131: "" {class: BLACK}
+132: "" {class: WHITE}
+133: "" {class: BLACK}
+134: "" {class: WHITE}
+135: "" {class: BLACK}
+136: "" {class: WHITE}
+137: "" {class: BLACK}
+138: "" {class: WHITE}
+139: "" {class: BLACK}
+140: "" {class: WHITE}
+141: "" {class: BLACK}
+142: "" {class: WHITE}
+143: "" {class: BLACK}
+144: "" {class: WHITE}
+145: "" {class: BLACK}
+146: "" {class: WHITE}
+147: "" {class: BLACK}
+148: "" {class: WHITE}
+149: "" {class: BLACK}
+150: "" {class: WHITE}
+151: "" {class: BLACK}
+152: "" {class: WHITE}
+153: "" {class: BLACK}
+154: "" {class: WHITE}
+155: "" {class: BLACK}
+156: "" {class: WHITE}
+157: "" {class: BLACK}
+158: "" {class: WHITE}
+159: "" {class: BLACK}
+160: "" {class: WHITE}
+161: "" {class: BLACK}
+162: "" {class: WHITE}
+163: "" {class: BLACK}
+164: "" {class: WHITE}
+165: "" {class: BLACK}
+166: "" {class: WHITE}
+167: "" {class: BLACK}
+168: "" {class: WHITE}
+169: "" {class: BLACK}
+170: "" {class: WHITE}
+171: "" {class: BLACK}
+172: "" {class: WHITE}
+173: "" {class: BLACK}
+174: "" {class: WHITE}
+175: "" {class: BLACK}
+176: "" {class: WHITE}
+177: "" {class: BLACK}
+178: "" {class: WHITE}
+179: "" {class: BLACK}
+180: "" {class: WHITE}
+181: "" {class: BLACK}
+182: "" {class: WHITE}
+183: "" {class: BLACK}
+184: "" {class: WHITE}
+185: "" {class: BLACK}
+186: "" {class: WHITE}
+187: "" {class: BLACK}
+188: "" {class: WHITE}
+189: "" {class: BLACK}
+190: "" {class: WHITE}
+191: "" {class: BLACK}
+192: "" {class: WHITE}
+193: "" {class: BLACK}
+194: "" {class: WHITE}
+195: "" {class: BLACK}
+196: "" {class: WHITE}
+197: "" {class: BLACK}
+198: "" {class: WHITE}
+199: "" {class: BLACK}
+200: "" {class: WHITE}
+201: "" {class: BLACK}
+202: "" {class: WHITE}
+203: "" {class: BLACK}
+204: "" {class: WHITE}
+205: "" {class: BLACK}
+206: "" {class: WHITE}
+207: "" {class: BLACK}
+208: "" {class: WHITE}
+209: "" {class: BLACK}
+210: "" {class: WHITE}
+211: "" {class: BLACK}
+212: "" {class: WHITE}
+213: "" {class: BLACK}
+214: "" {class: WHITE}
+215: "" {class: BLACK}
+216: "" {class: WHITE}
+217: "" {class: BLACK}
+218: "" {class: WHITE}
+219: "" {class: BLACK}
+220: "" {class: WHITE}
+221: "" {class: BLACK}
+222: "" {class: WHITE}
+223: "" {class: BLACK}
+224: "" {class: WHITE}
+225: "" {class: BLACK}
+226: "" {class: WHITE}
+227: "" {class: BLACK}
+228: "" {class: WHITE}
+229: "" {class: BLACK}
+230: "" {class: WHITE}
+231: "" {class: BLACK}
+232: "" {class: WHITE}
+233: "" {class: BLACK}
+234: "" {class: WHITE}
+235: "" {class: BLACK}
+236: "" {class: WHITE}
+237: "" {class: BLACK}
+238: "" {class: WHITE}
+239: "" {class: BLACK}
+240: "" {class: WHITE}
+241: "" {class: BLACK}
+242: "" {class: WHITE}
+243: "" {class: BLACK}
+244: "" {class: WHITE}
+245: "" {class: BLACK}
+246: "" {class: WHITE}
+247: "" {class: BLACK}
+248: "" {class: WHITE}
+249: "" {class: BLACK}
+250: "" {class: WHITE}
+251: "" {class: BLACK}
+252: "" {class: WHITE}
+253: "" {class: BLACK}
+254: "" {class: WHITE}
+255: "" {class: BLACK}
+256: "" {class: WHITE}
+257: "" {class: BLACK}
+258: "" {class: WHITE}
+259: "" {class: BLACK}
+260: "" {class: WHITE}
+261: "" {class: BLACK}
+262: "" {class: WHITE}
+263: "" {class: BLACK}
+264: "" {class: WHITE}
+265: "" {class: BLACK}
+266: "" {class: WHITE}
+267: "" {class: BLACK}
+268: "" {class: WHITE}
+269: "" {class: BLACK}
+270: "" {class: WHITE}
+271: "" {class: BLACK}
+272: "" {class: WHITE}
+273: "" {class: BLACK}
+274: "" {class: WHITE}
+275: "" {class: BLACK}
+276: "" {class: WHITE}
+277: "" {class: BLACK}
+278: "" {class: WHITE}
+279: "" {class: BLACK}
+280: "" {class: WHITE}
+281: "" {class: BLACK}
+282: "" {class: WHITE}
+283: "" {class: BLACK}
+284: "" {class: WHITE}
+285: "" {class: BLACK}
+286: "" {class: WHITE}
+287: "" {class: BLACK}
+288: "" {class: WHITE}
+289: "" {class: BLACK}
+290: "" {class: WHITE}
+291: "" {class: BLACK}
+292: "" {class: WHITE}
+293: "" {class: BLACK}
+294: "" {class: WHITE}
+295: "" {class: BLACK}
+296: "" {class: WHITE}
+297: "" {class: BLACK}
+298: "" {class: WHITE}
+299: "" {class: BLACK}
+300: "" {class: WHITE}
+301: "" {class: BLACK}
+302: "" {class: WHITE}
+303: "" {class: BLACK}
+304: "" {class: WHITE}
+305: "" {class: BLACK}
+306: "" {class: WHITE}
+307: "" {class: BLACK}
+308: "" {class: WHITE}
+309: "" {class: BLACK}
+310: "" {class: WHITE}
+311: "" {class: BLACK}
+312: "" {class: WHITE}
+313: "" {class: BLACK}
+314: "" {class: WHITE}
+315: "" {class: BLACK}
+316: "" {class: WHITE}
+317: "" {class: BLACK}
+318: "" {class: WHITE}
+319: "" {class: BLACK}
+320: "" {class: WHITE}
+321: "" {class: BLACK}
+322: "" {class: WHITE}
+323: "" {class: BLACK}
+324: "" {class: WHITE}
+325: "" {class: BLACK}
+326: "" {class: WHITE}
+327: "" {class: BLACK}
+328: "" {class: WHITE}
+329: "" {class: BLACK}
+330: "" {class: WHITE}
+331: "" {class: BLACK}
+332: "" {class: WHITE}
+333: "" {class: BLACK}
+334: "" {class: WHITE}
+335: "" {class: BLACK}
+336: "" {class: WHITE}
+337: "" {class: BLACK}
+338: "" {class: WHITE}
+339: "" {class: BLACK}
+340: "" {class: WHITE}
+341: "" {class: BLACK}
+342: "" {class: WHITE}
+343: "" {class: BLACK}
+344: "" {class: WHITE}
+345: "" {class: BLACK}
+346: "" {class: WHITE}
+347: "" {class: BLACK}
+348: "" {class: WHITE}
+349: "" {class: BLACK}
+350: "" {class: WHITE}
+351: "" {class: BLACK}
+352: "" {class: WHITE}
+353: "" {class: BLACK}
+354: "" {class: WHITE}
+355: "" {class: BLACK}
+356: "" {class: WHITE}
+357: "" {class: BLACK}
+358: "" {class: WHITE}
+359: "" {class: BLACK}
+360: "" {class: WHITE}
+361: "" {class: BLACK}
+362: "" {class: WHITE}
+363: "" {class: BLACK}
+364: "" {class: WHITE}
+365: "" {class: BLACK}
+366: "" {class: WHITE}
+367: "" {class: BLACK}
+368: "" {class: WHITE}
+369: "" {class: BLACK}
+370: "" {class: WHITE}
+371: "" {class: BLACK}
+372: "" {class: WHITE}
+373: "" {class: BLACK}
+374: "" {class: WHITE}
+375: "" {class: BLACK}
+376: "" {class: WHITE}
+377: "" {class: BLACK}
+378: "" {class: WHITE}
+379: "" {class: BLACK}
+380: "" {class: WHITE}
+381: "" {class: BLACK}
+382: "" {class: WHITE}
+383: "" {class: BLACK}
+384: "" {class: WHITE}
+385: "" {class: BLACK}
+386: "" {class: WHITE}
+387: "" {class: BLACK}
+388: "" {class: WHITE}
+389: "" {class: BLACK}
+390: "" {class: WHITE}
+391: "" {class: BLACK}
+392: "" {class: WHITE}
+393: "" {class: BLACK}
+394: "" {class: WHITE}
+395: "" {class: BLACK}
+396: "" {class: WHITE}
+397: "" {class: BLACK}
+398: "" {class: WHITE}
+399: "" {class: BLACK}
+400: "" {class: WHITE}
+401: "" {class: BLACK}
+402: "" {class: WHITE}
+403: "" {class: BLACK}
+404: "" {class: WHITE}
+405: "" {class: BLACK}
+406: "" {class: WHITE}
+407: "" {class: BLACK}
+408: "" {class: WHITE}
+409: "" {class: BLACK}
+410: "" {class: WHITE}
+411: "" {class: BLACK}
+412: "" {class: WHITE}
+413: "" {class: BLACK}
+414: "" {class: WHITE}
+415: "" {class: BLACK}
+416: "" {class: WHITE}
+417: "" {class: BLACK}
+418: "" {class: WHITE}
+419: "" {class: BLACK}
+420: "" {class: WHITE}
+421: "" {class: BLACK}
+422: "" {class: WHITE}
+423: "" {class: BLACK}
+424: "" {class: WHITE}
+425: "" {class: BLACK}
+426: "" {class: WHITE}
+427: "" {class: BLACK}
+428: "" {class: WHITE}
+429: "" {class: BLACK}
+430: "" {class: WHITE}
+431: "" {class: BLACK}
+432: "" {class: WHITE}
+433: "" {class: BLACK}
+434: "" {class: WHITE}
+435: "" {class: BLACK}
+436: "" {class: WHITE}
+437: "" {class: BLACK}
+438: "" {class: WHITE}
+439: "" {class: BLACK}
+440: "" {class: WHITE}
+441: "" {class: BLACK}
diff --git a/e2etests/testdata/files/grid_nested.d2 b/e2etests/testdata/files/grid_nested.d2
new file mode 100644
index 000000000..0be96eaf1
--- /dev/null
+++ b/e2etests/testdata/files/grid_nested.d2
@@ -0,0 +1,96 @@
+classes: {
+ 2x2: {
+ grid-rows: 2
+ grid-columns: 2
+ }
+ gap0: {
+ vertical-gap: 0
+ horizontal-gap: 0
+ }
+}
+
+grid w/ container: {
+ class: 2x2
+
+ a
+ b: {
+ b child
+ }
+ c
+ d
+}
+
+grid w/ nested containers: {
+ class: 2x2
+
+ a
+ b: {
+ b 1: {
+ b 2: {
+ b 3: {
+ b 4
+ }
+ }
+ b 2a: {
+ b 3a: {
+ b 3a
+ }
+ }
+ }
+ }
+ c
+ d
+}
+
+grid in grid: {
+ class: 2x2
+
+ a
+ b: {
+ class: 2x2
+
+ a
+ b
+ c
+ d
+ }
+ c
+ d
+}
+
+grid w/ grid w/ grid: {
+ class: [2x2; gap0]
+
+ a
+ b: {
+ class: [2x2; gap0]
+
+ a
+ b
+ c: {
+ class: [2x2; gap0]
+
+ a
+ b
+ c
+ d: {
+ class: [2x2; gap0]
+
+ a: {
+ class: [2x2; gap0]
+
+ a
+ b
+ c
+ d
+ }
+ b
+ c
+ d
+ }
+ }
+ d
+ }
+ c
+ d
+}
diff --git a/e2etests/testdata/files/grid_nested_gap0.d2 b/e2etests/testdata/files/grid_nested_gap0.d2
new file mode 100644
index 000000000..3d449fcfb
--- /dev/null
+++ b/e2etests/testdata/files/grid_nested_gap0.d2
@@ -0,0 +1,18 @@
+The Universe: {
+ grid-rows: 3
+ grid-gap: 0
+
+ FirstTwo.width: 300
+ Last.style.fill: red
+
+ TALA: "" {
+ grid-rows: 3
+ grid-gap: 0
+ TALA.width: 100
+ D2
+ Cloud
+ }
+ D2.width: 200
+ Cloud.width: 100
+ Terrastruct.width: 400
+}
diff --git a/e2etests/testdata/files/multiple_box_selection.d2 b/e2etests/testdata/files/multiple_box_selection.d2
new file mode 100644
index 000000000..a4301aa80
--- /dev/null
+++ b/e2etests/testdata/files/multiple_box_selection.d2
@@ -0,0 +1,11 @@
+outer: {
+ vg: volume group {
+ vd: volume definition {
+ style.multiple: true
+
+ volume.style.multiple: true
+ volume.style.stroke-dash: 3
+ }
+ }
+}
+start -> outer.vg.vd.volume -> end
diff --git a/e2etests/testdata/files/multiple_offset.d2 b/e2etests/testdata/files/multiple_offset.d2
new file mode 100644
index 000000000..2fdc0dcfa
--- /dev/null
+++ b/e2etests/testdata/files/multiple_offset.d2
@@ -0,0 +1,87 @@
+n1: {
+ a -> b
+ b.style: {
+ stroke-dash: 5
+ multiple: true
+ }
+}
+
+n2: {
+ a -> b
+ b.style: {
+ stroke-dash: 5
+ 3d: true
+ }
+}
+
+n3: {
+ a -> b
+ b.style: {
+ stroke-dash: 5
+ multiple: true
+ }
+ style.multiple: true
+}
+
+n4: {
+ a -> b
+ b.style: {
+ stroke-dash: 5
+ 3d: true
+ }
+ style.3d: true
+}
+
+n5: {
+ a -> b
+ b.style: {
+ stroke-dash: 5
+ }
+ style.multiple: true
+}
+
+n6: {
+ a -> b
+ b.style: {
+ stroke-dash: 5
+ }
+ style.3d: true
+}
+
+n7: {
+ a -> b
+ a.style.multiple: true
+ b.style: {
+ stroke-dash: 5
+ }
+ style.multiple: true
+}
+
+n8: {
+ a -> b
+ a.style.3d: true
+ b.style: {
+ stroke-dash: 5
+ }
+ style.3d: true
+}
+
+n9: {
+ a -> b
+ a.style.multiple: true
+ b.style: {
+ stroke-dash: 5
+ multiple: true
+ }
+ style.multiple: true
+}
+
+n10: {
+ a -> b
+ a.style.3d: true
+ b.style: {
+ stroke-dash: 5
+ 3d: true
+ }
+ style.3d: true
+}
diff --git a/e2etests/testdata/files/multiple_offset_left.d2 b/e2etests/testdata/files/multiple_offset_left.d2
new file mode 100644
index 000000000..872696783
--- /dev/null
+++ b/e2etests/testdata/files/multiple_offset_left.d2
@@ -0,0 +1,88 @@
+direction: left
+n1: {
+ a -> b
+ b.style: {
+ stroke-dash: 5
+ multiple: true
+ }
+}
+
+n2: {
+ a -> b
+ b.style: {
+ stroke-dash: 5
+ 3d: true
+ }
+}
+
+n3: {
+ a -> b
+ b.style: {
+ stroke-dash: 5
+ multiple: true
+ }
+ style.multiple: true
+}
+
+n4: {
+ a -> b
+ b.style: {
+ stroke-dash: 5
+ 3d: true
+ }
+ style.3d: true
+}
+
+n5: {
+ a -> b
+ b.style: {
+ stroke-dash: 5
+ }
+ style.multiple: true
+}
+
+n6: {
+ a -> b
+ b.style: {
+ stroke-dash: 5
+ }
+ style.3d: true
+}
+
+n7: {
+ a -> b
+ a.style.multiple: true
+ b.style: {
+ stroke-dash: 5
+ }
+ style.multiple: true
+}
+
+n8: {
+ a -> b
+ a.style.3d: true
+ b.style: {
+ stroke-dash: 5
+ }
+ style.3d: true
+}
+
+n9: {
+ a -> b
+ a.style.multiple: true
+ b.style: {
+ stroke-dash: 5
+ multiple: true
+ }
+ style.multiple: true
+}
+
+n10: {
+ a -> b
+ a.style.3d: true
+ b.style: {
+ stroke-dash: 5
+ 3d: true
+ }
+ style.3d: true
+}
diff --git a/e2etests/testdata/measured/empty-class/dagre/sketch.exp.svg b/e2etests/testdata/measured/empty-class/dagre/sketch.exp.svg
index 3a729f263..b24ba53b5 100644
--- a/e2etests/testdata/measured/empty-class/dagre/sketch.exp.svg
+++ b/e2etests/testdata/measured/empty-class/dagre/sketch.exp.svg
@@ -1,4 +1,4 @@
-x y z sync sync
+ .d2-481575301 .fill-N1{fill:#0A0F25;}
+ .d2-481575301 .fill-N2{fill:#676C7E;}
+ .d2-481575301 .fill-N3{fill:#9499AB;}
+ .d2-481575301 .fill-N4{fill:#CFD2DD;}
+ .d2-481575301 .fill-N5{fill:#DEE1EB;}
+ .d2-481575301 .fill-N6{fill:#EEF1F8;}
+ .d2-481575301 .fill-N7{fill:#FFFFFF;}
+ .d2-481575301 .fill-B1{fill:#0D32B2;}
+ .d2-481575301 .fill-B2{fill:#0D32B2;}
+ .d2-481575301 .fill-B3{fill:#E3E9FD;}
+ .d2-481575301 .fill-B4{fill:#E3E9FD;}
+ .d2-481575301 .fill-B5{fill:#EDF0FD;}
+ .d2-481575301 .fill-B6{fill:#F7F8FE;}
+ .d2-481575301 .fill-AA2{fill:#4A6FF3;}
+ .d2-481575301 .fill-AA4{fill:#EDF0FD;}
+ .d2-481575301 .fill-AA5{fill:#F7F8FE;}
+ .d2-481575301 .fill-AB4{fill:#EDF0FD;}
+ .d2-481575301 .fill-AB5{fill:#F7F8FE;}
+ .d2-481575301 .stroke-N1{stroke:#0A0F25;}
+ .d2-481575301 .stroke-N2{stroke:#676C7E;}
+ .d2-481575301 .stroke-N3{stroke:#9499AB;}
+ .d2-481575301 .stroke-N4{stroke:#CFD2DD;}
+ .d2-481575301 .stroke-N5{stroke:#DEE1EB;}
+ .d2-481575301 .stroke-N6{stroke:#EEF1F8;}
+ .d2-481575301 .stroke-N7{stroke:#FFFFFF;}
+ .d2-481575301 .stroke-B1{stroke:#0D32B2;}
+ .d2-481575301 .stroke-B2{stroke:#0D32B2;}
+ .d2-481575301 .stroke-B3{stroke:#E3E9FD;}
+ .d2-481575301 .stroke-B4{stroke:#E3E9FD;}
+ .d2-481575301 .stroke-B5{stroke:#EDF0FD;}
+ .d2-481575301 .stroke-B6{stroke:#F7F8FE;}
+ .d2-481575301 .stroke-AA2{stroke:#4A6FF3;}
+ .d2-481575301 .stroke-AA4{stroke:#EDF0FD;}
+ .d2-481575301 .stroke-AA5{stroke:#F7F8FE;}
+ .d2-481575301 .stroke-AB4{stroke:#EDF0FD;}
+ .d2-481575301 .stroke-AB5{stroke:#F7F8FE;}
+ .d2-481575301 .background-color-N1{background-color:#0A0F25;}
+ .d2-481575301 .background-color-N2{background-color:#676C7E;}
+ .d2-481575301 .background-color-N3{background-color:#9499AB;}
+ .d2-481575301 .background-color-N4{background-color:#CFD2DD;}
+ .d2-481575301 .background-color-N5{background-color:#DEE1EB;}
+ .d2-481575301 .background-color-N6{background-color:#EEF1F8;}
+ .d2-481575301 .background-color-N7{background-color:#FFFFFF;}
+ .d2-481575301 .background-color-B1{background-color:#0D32B2;}
+ .d2-481575301 .background-color-B2{background-color:#0D32B2;}
+ .d2-481575301 .background-color-B3{background-color:#E3E9FD;}
+ .d2-481575301 .background-color-B4{background-color:#E3E9FD;}
+ .d2-481575301 .background-color-B5{background-color:#EDF0FD;}
+ .d2-481575301 .background-color-B6{background-color:#F7F8FE;}
+ .d2-481575301 .background-color-AA2{background-color:#4A6FF3;}
+ .d2-481575301 .background-color-AA4{background-color:#EDF0FD;}
+ .d2-481575301 .background-color-AA5{background-color:#F7F8FE;}
+ .d2-481575301 .background-color-AB4{background-color:#EDF0FD;}
+ .d2-481575301 .background-color-AB5{background-color:#F7F8FE;}
+ .d2-481575301 .color-N1{color:#0A0F25;}
+ .d2-481575301 .color-N2{color:#676C7E;}
+ .d2-481575301 .color-N3{color:#9499AB;}
+ .d2-481575301 .color-N4{color:#CFD2DD;}
+ .d2-481575301 .color-N5{color:#DEE1EB;}
+ .d2-481575301 .color-N6{color:#EEF1F8;}
+ .d2-481575301 .color-N7{color:#FFFFFF;}
+ .d2-481575301 .color-B1{color:#0D32B2;}
+ .d2-481575301 .color-B2{color:#0D32B2;}
+ .d2-481575301 .color-B3{color:#E3E9FD;}
+ .d2-481575301 .color-B4{color:#E3E9FD;}
+ .d2-481575301 .color-B5{color:#EDF0FD;}
+ .d2-481575301 .color-B6{color:#F7F8FE;}
+ .d2-481575301 .color-AA2{color:#4A6FF3;}
+ .d2-481575301 .color-AA4{color:#EDF0FD;}
+ .d2-481575301 .color-AA5{color:#F7F8FE;}
+ .d2-481575301 .color-AB4{color:#EDF0FD;}
+ .d2-481575301 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>x y z sync sync
diff --git a/e2etests/testdata/regression/bold_edge_label/elk/sketch.exp.svg b/e2etests/testdata/regression/bold_edge_label/elk/sketch.exp.svg
index e582da57f..185612b81 100644
--- a/e2etests/testdata/regression/bold_edge_label/elk/sketch.exp.svg
+++ b/e2etests/testdata/regression/bold_edge_label/elk/sketch.exp.svg
@@ -1,17 +1,17 @@
-container title is hidden first second
+
+
+
\ No newline at end of file
diff --git a/e2etests/testdata/regression/cylinder_grid_label/elk/board.exp.json b/e2etests/testdata/regression/cylinder_grid_label/elk/board.exp.json
new file mode 100644
index 000000000..7539ef058
--- /dev/null
+++ b/e2etests/testdata/regression/cylinder_grid_label/elk/board.exp.json
@@ -0,0 +1,171 @@
+{
+ "name": "",
+ "isFolderOnly": false,
+ "fontFamily": "SourceSansPro",
+ "shapes": [
+ {
+ "id": "container title is hidden",
+ "type": "cylinder",
+ "pos": {
+ "x": 12,
+ "y": 12
+ },
+ "width": 286,
+ "height": 364,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "AA4",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "container title is hidden",
+ "fontSize": 28,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 276,
+ "labelHeight": 36,
+ "labelPosition": "INSIDE_TOP_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "container title is hidden.first",
+ "type": "rectangle",
+ "pos": {
+ "x": 107,
+ "y": 120
+ },
+ "width": 95,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "first",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 30,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "container title is hidden.second",
+ "type": "rectangle",
+ "pos": {
+ "x": 107,
+ "y": 226
+ },
+ "width": 95,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "second",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 50,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ }
+ ],
+ "connections": [],
+ "root": {
+ "id": "",
+ "type": "",
+ "pos": {
+ "x": 0,
+ "y": 0
+ },
+ "width": 0,
+ "height": 0,
+ "opacity": 0,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "N7",
+ "stroke": "",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 0,
+ "fontFamily": "",
+ "language": "",
+ "color": "",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "zIndex": 0,
+ "level": 0
+ }
+}
diff --git a/e2etests/testdata/regression/cylinder_grid_label/elk/sketch.exp.svg b/e2etests/testdata/regression/cylinder_grid_label/elk/sketch.exp.svg
new file mode 100644
index 000000000..2e39e4ace
--- /dev/null
+++ b/e2etests/testdata/regression/cylinder_grid_label/elk/sketch.exp.svg
@@ -0,0 +1,102 @@
+container title is hidden first second
+
+
+
\ No newline at end of file
diff --git a/e2etests/testdata/regression/dagre-disconnect/dagre/board.exp.json b/e2etests/testdata/regression/dagre-disconnect/dagre/board.exp.json
index 2df521ae3..f4db0058c 100644
--- a/e2etests/testdata/regression/dagre-disconnect/dagre/board.exp.json
+++ b/e2etests/testdata/regression/dagre-disconnect/dagre/board.exp.json
@@ -11,7 +11,7 @@
"y": 41
},
"width": 394,
- "height": 1829,
+ "height": 1830,
"opacity": 1,
"strokeDash": 0,
"strokeWidth": 2,
@@ -256,7 +256,7 @@
"x": 565,
"y": 827
},
- "width": 258,
+ "width": 259,
"height": 636,
"opacity": 1,
"strokeDash": 0,
@@ -1101,11 +1101,11 @@
},
{
"x": 85.5,
- "y": 242.7
+ "y": 242.6999969482422
},
{
"x": 85.5,
- "y": 260.9
+ "y": 260.89898681640625
},
{
"x": 85.5,
@@ -1113,11 +1113,11 @@
},
{
"x": 85.5,
- "y": 293.6
+ "y": 293.6000061035156
},
{
"x": 85.5,
- "y": 315.4
+ "y": 315.3999938964844
},
{
"x": 85.5,
@@ -1125,11 +1125,11 @@
},
{
"x": 85.5,
- "y": 348.1
+ "y": 348.1000061035156
},
{
"x": 85.5,
- "y": 369.9
+ "y": 369.8999938964844
},
{
"x": 85.5,
@@ -1137,11 +1137,11 @@
},
{
"x": 85.5,
- "y": 402.6
+ "y": 402.6000061035156
},
{
"x": 85.5,
- "y": 482.6
+ "y": 482.6000061035156
},
{
"x": 85.5,
@@ -1184,11 +1184,11 @@
},
{
"x": 197,
- "y": 619.3
+ "y": 619.2999877929688
},
{
"x": 197,
- "y": 633.4
+ "y": 633.4000244140625
},
{
"x": 197,
@@ -1196,11 +1196,11 @@
},
{
"x": 197,
- "y": 666.1
+ "y": 666.0999755859375
},
{
"x": 197,
- "y": 687.9
+ "y": 687.9000244140625
},
{
"x": 197,
@@ -1208,11 +1208,11 @@
},
{
"x": 197,
- "y": 720.6
+ "y": 720.5999755859375
},
{
"x": 197,
- "y": 742.4
+ "y": 742.4000244140625
},
{
"x": 197,
@@ -1220,11 +1220,11 @@
},
{
"x": 197,
- "y": 775.1
+ "y": 775.0999755859375
},
{
- "x": 274.6,
- "y": 866.8
+ "x": 274.6000061035156,
+ "y": 866.7999877929688
},
{
"x": 585,
@@ -1267,11 +1267,11 @@
},
{
"x": 1173.5,
- "y": 615.7
+ "y": 615.7000122070312
},
{
"x": 1173.5,
- "y": 633.4
+ "y": 633.4000244140625
},
{
"x": 1173.5,
@@ -1279,11 +1279,11 @@
},
{
"x": 1173.5,
- "y": 666.1
+ "y": 666.0999755859375
},
{
"x": 1173.5,
- "y": 687.9
+ "y": 687.9000244140625
},
{
"x": 1173.5,
@@ -1291,11 +1291,11 @@
},
{
"x": 1173.5,
- "y": 720.6
+ "y": 720.5999755859375
},
{
"x": 1173.5,
- "y": 742.4
+ "y": 742.4000244140625
},
{
"x": 1173.5,
@@ -1303,11 +1303,11 @@
},
{
"x": 1173.5,
- "y": 775.1
+ "y": 775.0999755859375
},
{
"x": 1173.5,
- "y": 855.6
+ "y": 855.5999755859375
},
{
"x": 1173.5,
@@ -1350,11 +1350,11 @@
},
{
"x": 827.25,
- "y": 226.3
+ "y": 226.3000030517578
},
{
"x": 827.25,
- "y": 240.4
+ "y": 240.39999389648438
},
{
"x": 827.25,
@@ -1362,23 +1362,23 @@
},
{
"x": 827.25,
- "y": 273.1
+ "y": 273.1000061035156
},
{
- "x": 701.2,
- "y": 294.9
+ "x": 701.2000122070312,
+ "y": 294.8999938964844
},
{
"x": 512.125,
"y": 311.25
},
{
- "x": 323.04999999999995,
- "y": 327.6
+ "x": 323.04901123046875,
+ "y": 327.6000061035156
},
{
"x": 197,
- "y": 349.4
+ "y": 349.3999938964844
},
{
"x": 197,
@@ -1386,11 +1386,11 @@
},
{
"x": 197,
- "y": 382.1
+ "y": 382.1000061035156
},
{
"x": 197,
- "y": 466.2
+ "y": 466.20001220703125
},
{
"x": 197,
@@ -1433,11 +1433,11 @@
},
{
"x": 309,
- "y": 619.3
+ "y": 619.2999877929688
},
{
"x": 309,
- "y": 633.4
+ "y": 633.4000244140625
},
{
"x": 309,
@@ -1445,11 +1445,11 @@
},
{
"x": 309,
- "y": 666.1
+ "y": 666.0999755859375
},
{
"x": 309,
- "y": 687.9
+ "y": 687.9000244140625
},
{
"x": 309,
@@ -1457,11 +1457,11 @@
},
{
"x": 309,
- "y": 720.6
+ "y": 720.5999755859375
},
{
"x": 309,
- "y": 742.4
+ "y": 742.4000244140625
},
{
"x": 309,
@@ -1469,15 +1469,15 @@
},
{
"x": 309,
- "y": 775.1
+ "y": 775.0999755859375
},
{
- "x": 427.9,
- "y": 864.9937853107344
+ "x": 427.8999938964844,
+ "y": 864.9929809570312
},
{
"x": 903.5,
- "y": 962.9689265536723
+ "y": 962.968017578125
}
],
"isCurve": true,
@@ -1516,11 +1516,11 @@
},
{
"x": 1060,
- "y": 1008.7
+ "y": 1008.7000122070312
},
{
"x": 1060,
- "y": 1026.4
+ "y": 1026.4000244140625
},
{
"x": 1060,
@@ -1528,23 +1528,23 @@
},
{
"x": 1060,
- "y": 1059.1
+ "y": 1059.0999755859375
},
{
- "x": 995.4,
- "y": 1080.9
+ "x": 995.4000244140625,
+ "y": 1080.9000244140625
},
{
"x": 898.5,
"y": 1097.25
},
{
- "x": 801.5999999999999,
- "y": 1113.6
+ "x": 801.5989990234375,
+ "y": 1113.5999755859375
},
{
"x": 737,
- "y": 1135.4
+ "y": 1135.4000244140625
},
{
"x": 737,
@@ -1552,11 +1552,11 @@
},
{
"x": 737,
- "y": 1168.1
+ "y": 1168.0999755859375
},
{
"x": 737,
- "y": 1252.2
+ "y": 1252.199951171875
},
{
"x": 737,
@@ -1599,11 +1599,11 @@
},
{
"x": 650.5,
- "y": 1063.4
+ "y": 1063.4000244140625
},
{
"x": 650.5,
- "y": 1080.9
+ "y": 1080.9000244140625
},
{
"x": 650.5,
@@ -1611,11 +1611,11 @@
},
{
"x": 650.5,
- "y": 1113.6
+ "y": 1113.5999755859375
},
{
"x": 650.5,
- "y": 1135.4
+ "y": 1135.4000244140625
},
{
"x": 650.5,
@@ -1623,11 +1623,11 @@
},
{
"x": 650.5,
- "y": 1168.1
+ "y": 1168.0999755859375
},
{
- "x": 621.3,
- "y": 1252.4
+ "x": 621.2999877929688,
+ "y": 1252.4000244140625
},
{
"x": 504.5,
@@ -1670,11 +1670,11 @@
},
{
"x": 479.5,
- "y": 1401.7
+ "y": 1401.699951171875
},
{
"x": 479.5,
- "y": 1419.4
+ "y": 1419.4000244140625
},
{
"x": 479.5,
@@ -1682,11 +1682,11 @@
},
{
"x": 479.5,
- "y": 1452.1
+ "y": 1452.0999755859375
},
{
"x": 423,
- "y": 1480.8
+ "y": 1480.800048828125
},
{
"x": 338.25,
@@ -1694,11 +1694,11 @@
},
{
"x": 253.5,
- "y": 1534.2
+ "y": 1534.199951171875
},
{
"x": 197,
- "y": 1659.6
+ "y": 1659.5999755859375
},
{
"x": 197,
diff --git a/e2etests/testdata/regression/dagre-disconnect/dagre/sketch.exp.svg b/e2etests/testdata/regression/dagre-disconnect/dagre/sketch.exp.svg
index fe05554fa..6f36b02bb 100644
--- a/e2etests/testdata/regression/dagre-disconnect/dagre/sketch.exp.svg
+++ b/e2etests/testdata/regression/dagre-disconnect/dagre/sketch.exp.svg
@@ -1,24 +1,24 @@
-a s k u h y k f n s o m s c z r g t i g s j j c f i 1 2 3 4
-
+ .d2-101727076 .fill-N1{fill:#0A0F25;}
+ .d2-101727076 .fill-N2{fill:#676C7E;}
+ .d2-101727076 .fill-N3{fill:#9499AB;}
+ .d2-101727076 .fill-N4{fill:#CFD2DD;}
+ .d2-101727076 .fill-N5{fill:#DEE1EB;}
+ .d2-101727076 .fill-N6{fill:#EEF1F8;}
+ .d2-101727076 .fill-N7{fill:#FFFFFF;}
+ .d2-101727076 .fill-B1{fill:#0D32B2;}
+ .d2-101727076 .fill-B2{fill:#0D32B2;}
+ .d2-101727076 .fill-B3{fill:#E3E9FD;}
+ .d2-101727076 .fill-B4{fill:#E3E9FD;}
+ .d2-101727076 .fill-B5{fill:#EDF0FD;}
+ .d2-101727076 .fill-B6{fill:#F7F8FE;}
+ .d2-101727076 .fill-AA2{fill:#4A6FF3;}
+ .d2-101727076 .fill-AA4{fill:#EDF0FD;}
+ .d2-101727076 .fill-AA5{fill:#F7F8FE;}
+ .d2-101727076 .fill-AB4{fill:#EDF0FD;}
+ .d2-101727076 .fill-AB5{fill:#F7F8FE;}
+ .d2-101727076 .stroke-N1{stroke:#0A0F25;}
+ .d2-101727076 .stroke-N2{stroke:#676C7E;}
+ .d2-101727076 .stroke-N3{stroke:#9499AB;}
+ .d2-101727076 .stroke-N4{stroke:#CFD2DD;}
+ .d2-101727076 .stroke-N5{stroke:#DEE1EB;}
+ .d2-101727076 .stroke-N6{stroke:#EEF1F8;}
+ .d2-101727076 .stroke-N7{stroke:#FFFFFF;}
+ .d2-101727076 .stroke-B1{stroke:#0D32B2;}
+ .d2-101727076 .stroke-B2{stroke:#0D32B2;}
+ .d2-101727076 .stroke-B3{stroke:#E3E9FD;}
+ .d2-101727076 .stroke-B4{stroke:#E3E9FD;}
+ .d2-101727076 .stroke-B5{stroke:#EDF0FD;}
+ .d2-101727076 .stroke-B6{stroke:#F7F8FE;}
+ .d2-101727076 .stroke-AA2{stroke:#4A6FF3;}
+ .d2-101727076 .stroke-AA4{stroke:#EDF0FD;}
+ .d2-101727076 .stroke-AA5{stroke:#F7F8FE;}
+ .d2-101727076 .stroke-AB4{stroke:#EDF0FD;}
+ .d2-101727076 .stroke-AB5{stroke:#F7F8FE;}
+ .d2-101727076 .background-color-N1{background-color:#0A0F25;}
+ .d2-101727076 .background-color-N2{background-color:#676C7E;}
+ .d2-101727076 .background-color-N3{background-color:#9499AB;}
+ .d2-101727076 .background-color-N4{background-color:#CFD2DD;}
+ .d2-101727076 .background-color-N5{background-color:#DEE1EB;}
+ .d2-101727076 .background-color-N6{background-color:#EEF1F8;}
+ .d2-101727076 .background-color-N7{background-color:#FFFFFF;}
+ .d2-101727076 .background-color-B1{background-color:#0D32B2;}
+ .d2-101727076 .background-color-B2{background-color:#0D32B2;}
+ .d2-101727076 .background-color-B3{background-color:#E3E9FD;}
+ .d2-101727076 .background-color-B4{background-color:#E3E9FD;}
+ .d2-101727076 .background-color-B5{background-color:#EDF0FD;}
+ .d2-101727076 .background-color-B6{background-color:#F7F8FE;}
+ .d2-101727076 .background-color-AA2{background-color:#4A6FF3;}
+ .d2-101727076 .background-color-AA4{background-color:#EDF0FD;}
+ .d2-101727076 .background-color-AA5{background-color:#F7F8FE;}
+ .d2-101727076 .background-color-AB4{background-color:#EDF0FD;}
+ .d2-101727076 .background-color-AB5{background-color:#F7F8FE;}
+ .d2-101727076 .color-N1{color:#0A0F25;}
+ .d2-101727076 .color-N2{color:#676C7E;}
+ .d2-101727076 .color-N3{color:#9499AB;}
+ .d2-101727076 .color-N4{color:#CFD2DD;}
+ .d2-101727076 .color-N5{color:#DEE1EB;}
+ .d2-101727076 .color-N6{color:#EEF1F8;}
+ .d2-101727076 .color-N7{color:#FFFFFF;}
+ .d2-101727076 .color-B1{color:#0D32B2;}
+ .d2-101727076 .color-B2{color:#0D32B2;}
+ .d2-101727076 .color-B3{color:#E3E9FD;}
+ .d2-101727076 .color-B4{color:#E3E9FD;}
+ .d2-101727076 .color-B5{color:#EDF0FD;}
+ .d2-101727076 .color-B6{color:#F7F8FE;}
+ .d2-101727076 .color-AA2{color:#4A6FF3;}
+ .d2-101727076 .color-AA4{color:#EDF0FD;}
+ .d2-101727076 .color-AA5{color:#F7F8FE;}
+ .d2-101727076 .color-AB4{color:#EDF0FD;}
+ .d2-101727076 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>a s k u h y k f n s o m s c z r g t i g s j j c f i 1 2 3 4
+
\ No newline at end of file
diff --git a/e2etests/testdata/regression/dagre-disconnect/elk/sketch.exp.svg b/e2etests/testdata/regression/dagre-disconnect/elk/sketch.exp.svg
index c88bec3ad..4d7b3feab 100644
--- a/e2etests/testdata/regression/dagre-disconnect/elk/sketch.exp.svg
+++ b/e2etests/testdata/regression/dagre-disconnect/elk/sketch.exp.svg
@@ -1,24 +1,24 @@
-a b c 1 2 d line 1 line 2 line 3 line 4
+ .d2-3104727844 .fill-N1{fill:#0A0F25;}
+ .d2-3104727844 .fill-N2{fill:#676C7E;}
+ .d2-3104727844 .fill-N3{fill:#9499AB;}
+ .d2-3104727844 .fill-N4{fill:#CFD2DD;}
+ .d2-3104727844 .fill-N5{fill:#DEE1EB;}
+ .d2-3104727844 .fill-N6{fill:#EEF1F8;}
+ .d2-3104727844 .fill-N7{fill:#FFFFFF;}
+ .d2-3104727844 .fill-B1{fill:#0D32B2;}
+ .d2-3104727844 .fill-B2{fill:#0D32B2;}
+ .d2-3104727844 .fill-B3{fill:#E3E9FD;}
+ .d2-3104727844 .fill-B4{fill:#E3E9FD;}
+ .d2-3104727844 .fill-B5{fill:#EDF0FD;}
+ .d2-3104727844 .fill-B6{fill:#F7F8FE;}
+ .d2-3104727844 .fill-AA2{fill:#4A6FF3;}
+ .d2-3104727844 .fill-AA4{fill:#EDF0FD;}
+ .d2-3104727844 .fill-AA5{fill:#F7F8FE;}
+ .d2-3104727844 .fill-AB4{fill:#EDF0FD;}
+ .d2-3104727844 .fill-AB5{fill:#F7F8FE;}
+ .d2-3104727844 .stroke-N1{stroke:#0A0F25;}
+ .d2-3104727844 .stroke-N2{stroke:#676C7E;}
+ .d2-3104727844 .stroke-N3{stroke:#9499AB;}
+ .d2-3104727844 .stroke-N4{stroke:#CFD2DD;}
+ .d2-3104727844 .stroke-N5{stroke:#DEE1EB;}
+ .d2-3104727844 .stroke-N6{stroke:#EEF1F8;}
+ .d2-3104727844 .stroke-N7{stroke:#FFFFFF;}
+ .d2-3104727844 .stroke-B1{stroke:#0D32B2;}
+ .d2-3104727844 .stroke-B2{stroke:#0D32B2;}
+ .d2-3104727844 .stroke-B3{stroke:#E3E9FD;}
+ .d2-3104727844 .stroke-B4{stroke:#E3E9FD;}
+ .d2-3104727844 .stroke-B5{stroke:#EDF0FD;}
+ .d2-3104727844 .stroke-B6{stroke:#F7F8FE;}
+ .d2-3104727844 .stroke-AA2{stroke:#4A6FF3;}
+ .d2-3104727844 .stroke-AA4{stroke:#EDF0FD;}
+ .d2-3104727844 .stroke-AA5{stroke:#F7F8FE;}
+ .d2-3104727844 .stroke-AB4{stroke:#EDF0FD;}
+ .d2-3104727844 .stroke-AB5{stroke:#F7F8FE;}
+ .d2-3104727844 .background-color-N1{background-color:#0A0F25;}
+ .d2-3104727844 .background-color-N2{background-color:#676C7E;}
+ .d2-3104727844 .background-color-N3{background-color:#9499AB;}
+ .d2-3104727844 .background-color-N4{background-color:#CFD2DD;}
+ .d2-3104727844 .background-color-N5{background-color:#DEE1EB;}
+ .d2-3104727844 .background-color-N6{background-color:#EEF1F8;}
+ .d2-3104727844 .background-color-N7{background-color:#FFFFFF;}
+ .d2-3104727844 .background-color-B1{background-color:#0D32B2;}
+ .d2-3104727844 .background-color-B2{background-color:#0D32B2;}
+ .d2-3104727844 .background-color-B3{background-color:#E3E9FD;}
+ .d2-3104727844 .background-color-B4{background-color:#E3E9FD;}
+ .d2-3104727844 .background-color-B5{background-color:#EDF0FD;}
+ .d2-3104727844 .background-color-B6{background-color:#F7F8FE;}
+ .d2-3104727844 .background-color-AA2{background-color:#4A6FF3;}
+ .d2-3104727844 .background-color-AA4{background-color:#EDF0FD;}
+ .d2-3104727844 .background-color-AA5{background-color:#F7F8FE;}
+ .d2-3104727844 .background-color-AB4{background-color:#EDF0FD;}
+ .d2-3104727844 .background-color-AB5{background-color:#F7F8FE;}
+ .d2-3104727844 .color-N1{color:#0A0F25;}
+ .d2-3104727844 .color-N2{color:#676C7E;}
+ .d2-3104727844 .color-N3{color:#9499AB;}
+ .d2-3104727844 .color-N4{color:#CFD2DD;}
+ .d2-3104727844 .color-N5{color:#DEE1EB;}
+ .d2-3104727844 .color-N6{color:#EEF1F8;}
+ .d2-3104727844 .color-N7{color:#FFFFFF;}
+ .d2-3104727844 .color-B1{color:#0D32B2;}
+ .d2-3104727844 .color-B2{color:#0D32B2;}
+ .d2-3104727844 .color-B3{color:#E3E9FD;}
+ .d2-3104727844 .color-B4{color:#E3E9FD;}
+ .d2-3104727844 .color-B5{color:#EDF0FD;}
+ .d2-3104727844 .color-B6{color:#F7F8FE;}
+ .d2-3104727844 .color-AA2{color:#4A6FF3;}
+ .d2-3104727844 .color-AA4{color:#EDF0FD;}
+ .d2-3104727844 .color-AA5{color:#F7F8FE;}
+ .d2-3104727844 .color-AB4{color:#EDF0FD;}
+ .d2-3104727844 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>a b c 1 2 d line 1 line 2 line 3 line 4
\ No newline at end of file
diff --git a/e2etests/testdata/regression/dagre_broken_arrowhead/elk/board.exp.json b/e2etests/testdata/regression/dagre_broken_arrowhead/elk/board.exp.json
index 92ffb1b0c..f30d0fe43 100644
--- a/e2etests/testdata/regression/dagre_broken_arrowhead/elk/board.exp.json
+++ b/e2etests/testdata/regression/dagre_broken_arrowhead/elk/board.exp.json
@@ -10,7 +10,7 @@
"x": 12,
"y": 12
},
- "width": 290,
+ "width": 291,
"height": 551,
"opacity": 1,
"strokeDash": 0,
diff --git a/e2etests/testdata/regression/dagre_broken_arrowhead/elk/sketch.exp.svg b/e2etests/testdata/regression/dagre_broken_arrowhead/elk/sketch.exp.svg
index 84ffcae1c..5bd745f62 100644
--- a/e2etests/testdata/regression/dagre_broken_arrowhead/elk/sketch.exp.svg
+++ b/e2etests/testdata/regression/dagre_broken_arrowhead/elk/sketch.exp.svg
@@ -1,24 +1,24 @@
-a b c 1 2 d line 1 line 2 line 3 line 4
-
+ .d2-100095279 .fill-N1{fill:#0A0F25;}
+ .d2-100095279 .fill-N2{fill:#676C7E;}
+ .d2-100095279 .fill-N3{fill:#9499AB;}
+ .d2-100095279 .fill-N4{fill:#CFD2DD;}
+ .d2-100095279 .fill-N5{fill:#DEE1EB;}
+ .d2-100095279 .fill-N6{fill:#EEF1F8;}
+ .d2-100095279 .fill-N7{fill:#FFFFFF;}
+ .d2-100095279 .fill-B1{fill:#0D32B2;}
+ .d2-100095279 .fill-B2{fill:#0D32B2;}
+ .d2-100095279 .fill-B3{fill:#E3E9FD;}
+ .d2-100095279 .fill-B4{fill:#E3E9FD;}
+ .d2-100095279 .fill-B5{fill:#EDF0FD;}
+ .d2-100095279 .fill-B6{fill:#F7F8FE;}
+ .d2-100095279 .fill-AA2{fill:#4A6FF3;}
+ .d2-100095279 .fill-AA4{fill:#EDF0FD;}
+ .d2-100095279 .fill-AA5{fill:#F7F8FE;}
+ .d2-100095279 .fill-AB4{fill:#EDF0FD;}
+ .d2-100095279 .fill-AB5{fill:#F7F8FE;}
+ .d2-100095279 .stroke-N1{stroke:#0A0F25;}
+ .d2-100095279 .stroke-N2{stroke:#676C7E;}
+ .d2-100095279 .stroke-N3{stroke:#9499AB;}
+ .d2-100095279 .stroke-N4{stroke:#CFD2DD;}
+ .d2-100095279 .stroke-N5{stroke:#DEE1EB;}
+ .d2-100095279 .stroke-N6{stroke:#EEF1F8;}
+ .d2-100095279 .stroke-N7{stroke:#FFFFFF;}
+ .d2-100095279 .stroke-B1{stroke:#0D32B2;}
+ .d2-100095279 .stroke-B2{stroke:#0D32B2;}
+ .d2-100095279 .stroke-B3{stroke:#E3E9FD;}
+ .d2-100095279 .stroke-B4{stroke:#E3E9FD;}
+ .d2-100095279 .stroke-B5{stroke:#EDF0FD;}
+ .d2-100095279 .stroke-B6{stroke:#F7F8FE;}
+ .d2-100095279 .stroke-AA2{stroke:#4A6FF3;}
+ .d2-100095279 .stroke-AA4{stroke:#EDF0FD;}
+ .d2-100095279 .stroke-AA5{stroke:#F7F8FE;}
+ .d2-100095279 .stroke-AB4{stroke:#EDF0FD;}
+ .d2-100095279 .stroke-AB5{stroke:#F7F8FE;}
+ .d2-100095279 .background-color-N1{background-color:#0A0F25;}
+ .d2-100095279 .background-color-N2{background-color:#676C7E;}
+ .d2-100095279 .background-color-N3{background-color:#9499AB;}
+ .d2-100095279 .background-color-N4{background-color:#CFD2DD;}
+ .d2-100095279 .background-color-N5{background-color:#DEE1EB;}
+ .d2-100095279 .background-color-N6{background-color:#EEF1F8;}
+ .d2-100095279 .background-color-N7{background-color:#FFFFFF;}
+ .d2-100095279 .background-color-B1{background-color:#0D32B2;}
+ .d2-100095279 .background-color-B2{background-color:#0D32B2;}
+ .d2-100095279 .background-color-B3{background-color:#E3E9FD;}
+ .d2-100095279 .background-color-B4{background-color:#E3E9FD;}
+ .d2-100095279 .background-color-B5{background-color:#EDF0FD;}
+ .d2-100095279 .background-color-B6{background-color:#F7F8FE;}
+ .d2-100095279 .background-color-AA2{background-color:#4A6FF3;}
+ .d2-100095279 .background-color-AA4{background-color:#EDF0FD;}
+ .d2-100095279 .background-color-AA5{background-color:#F7F8FE;}
+ .d2-100095279 .background-color-AB4{background-color:#EDF0FD;}
+ .d2-100095279 .background-color-AB5{background-color:#F7F8FE;}
+ .d2-100095279 .color-N1{color:#0A0F25;}
+ .d2-100095279 .color-N2{color:#676C7E;}
+ .d2-100095279 .color-N3{color:#9499AB;}
+ .d2-100095279 .color-N4{color:#CFD2DD;}
+ .d2-100095279 .color-N5{color:#DEE1EB;}
+ .d2-100095279 .color-N6{color:#EEF1F8;}
+ .d2-100095279 .color-N7{color:#FFFFFF;}
+ .d2-100095279 .color-B1{color:#0D32B2;}
+ .d2-100095279 .color-B2{color:#0D32B2;}
+ .d2-100095279 .color-B3{color:#E3E9FD;}
+ .d2-100095279 .color-B4{color:#E3E9FD;}
+ .d2-100095279 .color-B5{color:#EDF0FD;}
+ .d2-100095279 .color-B6{color:#F7F8FE;}
+ .d2-100095279 .color-AA2{color:#4A6FF3;}
+ .d2-100095279 .color-AA4{color:#EDF0FD;}
+ .d2-100095279 .color-AA5{color:#F7F8FE;}
+ .d2-100095279 .color-AB4{color:#EDF0FD;}
+ .d2-100095279 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>a b c 1 2 d line 1 line 2 line 3 line 4
+
\ No newline at end of file
diff --git a/e2etests/testdata/regression/dagre_edge_label_spacing/dagre/board.exp.json b/e2etests/testdata/regression/dagre_edge_label_spacing/dagre/board.exp.json
index f9b3d9250..cf8775f3e 100644
--- a/e2etests/testdata/regression/dagre_edge_label_spacing/dagre/board.exp.json
+++ b/e2etests/testdata/regression/dagre_edge_label_spacing/dagre/board.exp.json
@@ -280,11 +280,11 @@
"y": 99.5
},
{
- "x": 479.9,
+ "x": 479.8999938964844,
"y": 99.5
},
{
- "x": 532.3,
+ "x": 532.2999877929688,
"y": 99.5
},
{
@@ -327,11 +327,11 @@
"y": 99.5
},
{
- "x": 985.3,
+ "x": 985.2999877929688,
"y": 99.5
},
{
- "x": 1054.7,
+ "x": 1054.699951171875,
"y": 99.5
},
{
@@ -374,11 +374,11 @@
"y": 99.5
},
{
- "x": 1395.9,
+ "x": 1395.9000244140625,
"y": 99.5
},
{
- "x": 1461.3,
+ "x": 1461.300048828125,
"y": 99.5
},
{
@@ -421,11 +421,11 @@
"y": 99.5
},
{
- "x": 1901.9,
+ "x": 1901.9000244140625,
"y": 99.5
},
{
- "x": 1977.3,
+ "x": 1977.300048828125,
"y": 99.5
},
{
diff --git a/e2etests/testdata/regression/dagre_edge_label_spacing/dagre/sketch.exp.svg b/e2etests/testdata/regression/dagre_edge_label_spacing/dagre/sketch.exp.svg
index 12704347c..63de15456 100644
--- a/e2etests/testdata/regression/dagre_edge_label_spacing/dagre/sketch.exp.svg
+++ b/e2etests/testdata/regression/dagre_edge_label_spacing/dagre/sketch.exp.svg
@@ -1,24 +1,24 @@
-lambda-build.yaml Push to main branch GitHub Actions S3 Terraform AWS Triggers Builds zip & pushes it Pulls zip to deploy Changes the live lambdas
+ .d2-1756545223 .fill-N1{fill:#0A0F25;}
+ .d2-1756545223 .fill-N2{fill:#676C7E;}
+ .d2-1756545223 .fill-N3{fill:#9499AB;}
+ .d2-1756545223 .fill-N4{fill:#CFD2DD;}
+ .d2-1756545223 .fill-N5{fill:#DEE1EB;}
+ .d2-1756545223 .fill-N6{fill:#EEF1F8;}
+ .d2-1756545223 .fill-N7{fill:#FFFFFF;}
+ .d2-1756545223 .fill-B1{fill:#0D32B2;}
+ .d2-1756545223 .fill-B2{fill:#0D32B2;}
+ .d2-1756545223 .fill-B3{fill:#E3E9FD;}
+ .d2-1756545223 .fill-B4{fill:#E3E9FD;}
+ .d2-1756545223 .fill-B5{fill:#EDF0FD;}
+ .d2-1756545223 .fill-B6{fill:#F7F8FE;}
+ .d2-1756545223 .fill-AA2{fill:#4A6FF3;}
+ .d2-1756545223 .fill-AA4{fill:#EDF0FD;}
+ .d2-1756545223 .fill-AA5{fill:#F7F8FE;}
+ .d2-1756545223 .fill-AB4{fill:#EDF0FD;}
+ .d2-1756545223 .fill-AB5{fill:#F7F8FE;}
+ .d2-1756545223 .stroke-N1{stroke:#0A0F25;}
+ .d2-1756545223 .stroke-N2{stroke:#676C7E;}
+ .d2-1756545223 .stroke-N3{stroke:#9499AB;}
+ .d2-1756545223 .stroke-N4{stroke:#CFD2DD;}
+ .d2-1756545223 .stroke-N5{stroke:#DEE1EB;}
+ .d2-1756545223 .stroke-N6{stroke:#EEF1F8;}
+ .d2-1756545223 .stroke-N7{stroke:#FFFFFF;}
+ .d2-1756545223 .stroke-B1{stroke:#0D32B2;}
+ .d2-1756545223 .stroke-B2{stroke:#0D32B2;}
+ .d2-1756545223 .stroke-B3{stroke:#E3E9FD;}
+ .d2-1756545223 .stroke-B4{stroke:#E3E9FD;}
+ .d2-1756545223 .stroke-B5{stroke:#EDF0FD;}
+ .d2-1756545223 .stroke-B6{stroke:#F7F8FE;}
+ .d2-1756545223 .stroke-AA2{stroke:#4A6FF3;}
+ .d2-1756545223 .stroke-AA4{stroke:#EDF0FD;}
+ .d2-1756545223 .stroke-AA5{stroke:#F7F8FE;}
+ .d2-1756545223 .stroke-AB4{stroke:#EDF0FD;}
+ .d2-1756545223 .stroke-AB5{stroke:#F7F8FE;}
+ .d2-1756545223 .background-color-N1{background-color:#0A0F25;}
+ .d2-1756545223 .background-color-N2{background-color:#676C7E;}
+ .d2-1756545223 .background-color-N3{background-color:#9499AB;}
+ .d2-1756545223 .background-color-N4{background-color:#CFD2DD;}
+ .d2-1756545223 .background-color-N5{background-color:#DEE1EB;}
+ .d2-1756545223 .background-color-N6{background-color:#EEF1F8;}
+ .d2-1756545223 .background-color-N7{background-color:#FFFFFF;}
+ .d2-1756545223 .background-color-B1{background-color:#0D32B2;}
+ .d2-1756545223 .background-color-B2{background-color:#0D32B2;}
+ .d2-1756545223 .background-color-B3{background-color:#E3E9FD;}
+ .d2-1756545223 .background-color-B4{background-color:#E3E9FD;}
+ .d2-1756545223 .background-color-B5{background-color:#EDF0FD;}
+ .d2-1756545223 .background-color-B6{background-color:#F7F8FE;}
+ .d2-1756545223 .background-color-AA2{background-color:#4A6FF3;}
+ .d2-1756545223 .background-color-AA4{background-color:#EDF0FD;}
+ .d2-1756545223 .background-color-AA5{background-color:#F7F8FE;}
+ .d2-1756545223 .background-color-AB4{background-color:#EDF0FD;}
+ .d2-1756545223 .background-color-AB5{background-color:#F7F8FE;}
+ .d2-1756545223 .color-N1{color:#0A0F25;}
+ .d2-1756545223 .color-N2{color:#676C7E;}
+ .d2-1756545223 .color-N3{color:#9499AB;}
+ .d2-1756545223 .color-N4{color:#CFD2DD;}
+ .d2-1756545223 .color-N5{color:#DEE1EB;}
+ .d2-1756545223 .color-N6{color:#EEF1F8;}
+ .d2-1756545223 .color-N7{color:#FFFFFF;}
+ .d2-1756545223 .color-B1{color:#0D32B2;}
+ .d2-1756545223 .color-B2{color:#0D32B2;}
+ .d2-1756545223 .color-B3{color:#E3E9FD;}
+ .d2-1756545223 .color-B4{color:#E3E9FD;}
+ .d2-1756545223 .color-B5{color:#EDF0FD;}
+ .d2-1756545223 .color-B6{color:#F7F8FE;}
+ .d2-1756545223 .color-AA2{color:#4A6FF3;}
+ .d2-1756545223 .color-AA4{color:#EDF0FD;}
+ .d2-1756545223 .color-AA5{color:#F7F8FE;}
+ .d2-1756545223 .color-AB4{color:#EDF0FD;}
+ .d2-1756545223 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>lambda-build.yaml Push to main branch GitHub Actions S3 Terraform AWS Triggers Builds zip & pushes it Pulls zip to deploy Changes the live lambdas
diff --git a/e2etests/testdata/regression/dagre_edge_label_spacing/elk/sketch.exp.svg b/e2etests/testdata/regression/dagre_edge_label_spacing/elk/sketch.exp.svg
index 1b47a1f24..0c97b085e 100644
--- a/e2etests/testdata/regression/dagre_edge_label_spacing/elk/sketch.exp.svg
+++ b/e2etests/testdata/regression/dagre_edge_label_spacing/elk/sketch.exp.svg
@@ -1,24 +1,24 @@
-ninety nine eighty
eight seventy
seven a\yode there a\"ode a\node
+ .d2-3757121971 .fill-N1{fill:#0A0F25;}
+ .d2-3757121971 .fill-N2{fill:#676C7E;}
+ .d2-3757121971 .fill-N3{fill:#9499AB;}
+ .d2-3757121971 .fill-N4{fill:#CFD2DD;}
+ .d2-3757121971 .fill-N5{fill:#DEE1EB;}
+ .d2-3757121971 .fill-N6{fill:#EEF1F8;}
+ .d2-3757121971 .fill-N7{fill:#FFFFFF;}
+ .d2-3757121971 .fill-B1{fill:#0D32B2;}
+ .d2-3757121971 .fill-B2{fill:#0D32B2;}
+ .d2-3757121971 .fill-B3{fill:#E3E9FD;}
+ .d2-3757121971 .fill-B4{fill:#E3E9FD;}
+ .d2-3757121971 .fill-B5{fill:#EDF0FD;}
+ .d2-3757121971 .fill-B6{fill:#F7F8FE;}
+ .d2-3757121971 .fill-AA2{fill:#4A6FF3;}
+ .d2-3757121971 .fill-AA4{fill:#EDF0FD;}
+ .d2-3757121971 .fill-AA5{fill:#F7F8FE;}
+ .d2-3757121971 .fill-AB4{fill:#EDF0FD;}
+ .d2-3757121971 .fill-AB5{fill:#F7F8FE;}
+ .d2-3757121971 .stroke-N1{stroke:#0A0F25;}
+ .d2-3757121971 .stroke-N2{stroke:#676C7E;}
+ .d2-3757121971 .stroke-N3{stroke:#9499AB;}
+ .d2-3757121971 .stroke-N4{stroke:#CFD2DD;}
+ .d2-3757121971 .stroke-N5{stroke:#DEE1EB;}
+ .d2-3757121971 .stroke-N6{stroke:#EEF1F8;}
+ .d2-3757121971 .stroke-N7{stroke:#FFFFFF;}
+ .d2-3757121971 .stroke-B1{stroke:#0D32B2;}
+ .d2-3757121971 .stroke-B2{stroke:#0D32B2;}
+ .d2-3757121971 .stroke-B3{stroke:#E3E9FD;}
+ .d2-3757121971 .stroke-B4{stroke:#E3E9FD;}
+ .d2-3757121971 .stroke-B5{stroke:#EDF0FD;}
+ .d2-3757121971 .stroke-B6{stroke:#F7F8FE;}
+ .d2-3757121971 .stroke-AA2{stroke:#4A6FF3;}
+ .d2-3757121971 .stroke-AA4{stroke:#EDF0FD;}
+ .d2-3757121971 .stroke-AA5{stroke:#F7F8FE;}
+ .d2-3757121971 .stroke-AB4{stroke:#EDF0FD;}
+ .d2-3757121971 .stroke-AB5{stroke:#F7F8FE;}
+ .d2-3757121971 .background-color-N1{background-color:#0A0F25;}
+ .d2-3757121971 .background-color-N2{background-color:#676C7E;}
+ .d2-3757121971 .background-color-N3{background-color:#9499AB;}
+ .d2-3757121971 .background-color-N4{background-color:#CFD2DD;}
+ .d2-3757121971 .background-color-N5{background-color:#DEE1EB;}
+ .d2-3757121971 .background-color-N6{background-color:#EEF1F8;}
+ .d2-3757121971 .background-color-N7{background-color:#FFFFFF;}
+ .d2-3757121971 .background-color-B1{background-color:#0D32B2;}
+ .d2-3757121971 .background-color-B2{background-color:#0D32B2;}
+ .d2-3757121971 .background-color-B3{background-color:#E3E9FD;}
+ .d2-3757121971 .background-color-B4{background-color:#E3E9FD;}
+ .d2-3757121971 .background-color-B5{background-color:#EDF0FD;}
+ .d2-3757121971 .background-color-B6{background-color:#F7F8FE;}
+ .d2-3757121971 .background-color-AA2{background-color:#4A6FF3;}
+ .d2-3757121971 .background-color-AA4{background-color:#EDF0FD;}
+ .d2-3757121971 .background-color-AA5{background-color:#F7F8FE;}
+ .d2-3757121971 .background-color-AB4{background-color:#EDF0FD;}
+ .d2-3757121971 .background-color-AB5{background-color:#F7F8FE;}
+ .d2-3757121971 .color-N1{color:#0A0F25;}
+ .d2-3757121971 .color-N2{color:#676C7E;}
+ .d2-3757121971 .color-N3{color:#9499AB;}
+ .d2-3757121971 .color-N4{color:#CFD2DD;}
+ .d2-3757121971 .color-N5{color:#DEE1EB;}
+ .d2-3757121971 .color-N6{color:#EEF1F8;}
+ .d2-3757121971 .color-N7{color:#FFFFFF;}
+ .d2-3757121971 .color-B1{color:#0D32B2;}
+ .d2-3757121971 .color-B2{color:#0D32B2;}
+ .d2-3757121971 .color-B3{color:#E3E9FD;}
+ .d2-3757121971 .color-B4{color:#E3E9FD;}
+ .d2-3757121971 .color-B5{color:#EDF0FD;}
+ .d2-3757121971 .color-B6{color:#F7F8FE;}
+ .d2-3757121971 .color-AA2{color:#4A6FF3;}
+ .d2-3757121971 .color-AA4{color:#EDF0FD;}
+ .d2-3757121971 .color-AA5{color:#F7F8FE;}
+ .d2-3757121971 .color-AB4{color:#EDF0FD;}
+ .d2-3757121971 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>ninety nine eighty
eight seventy
seven a\yode there a\"ode a\node
\ No newline at end of file
diff --git a/e2etests/testdata/regression/dagre_special_ids/elk/sketch.exp.svg b/e2etests/testdata/regression/dagre_special_ids/elk/sketch.exp.svg
index 4615f1146..44181a9ea 100644
--- a/e2etests/testdata/regression/dagre_special_ids/elk/sketch.exp.svg
+++ b/e2etests/testdata/regression/dagre_special_ids/elk/sketch.exp.svg
@@ -1,10 +1,10 @@
-lambda-build.yaml lambda-deploy.yaml apollo-deploy.yaml Push to main branch GitHub Actions S3 Terraform AWS Manual Trigger GitHub Actions AWS Apollo Repo GitHub Actions AWS Triggers Builds zip and pushes it Pulls zip to deploy Changes live lambdas Launches Builds zip pushes them to S3. Deploys lambdas using Terraform Triggered manually/push to master test test test test test test test test
+ .d2-443684297 .fill-N1{fill:#0A0F25;}
+ .d2-443684297 .fill-N2{fill:#676C7E;}
+ .d2-443684297 .fill-N3{fill:#9499AB;}
+ .d2-443684297 .fill-N4{fill:#CFD2DD;}
+ .d2-443684297 .fill-N5{fill:#DEE1EB;}
+ .d2-443684297 .fill-N6{fill:#EEF1F8;}
+ .d2-443684297 .fill-N7{fill:#FFFFFF;}
+ .d2-443684297 .fill-B1{fill:#0D32B2;}
+ .d2-443684297 .fill-B2{fill:#0D32B2;}
+ .d2-443684297 .fill-B3{fill:#E3E9FD;}
+ .d2-443684297 .fill-B4{fill:#E3E9FD;}
+ .d2-443684297 .fill-B5{fill:#EDF0FD;}
+ .d2-443684297 .fill-B6{fill:#F7F8FE;}
+ .d2-443684297 .fill-AA2{fill:#4A6FF3;}
+ .d2-443684297 .fill-AA4{fill:#EDF0FD;}
+ .d2-443684297 .fill-AA5{fill:#F7F8FE;}
+ .d2-443684297 .fill-AB4{fill:#EDF0FD;}
+ .d2-443684297 .fill-AB5{fill:#F7F8FE;}
+ .d2-443684297 .stroke-N1{stroke:#0A0F25;}
+ .d2-443684297 .stroke-N2{stroke:#676C7E;}
+ .d2-443684297 .stroke-N3{stroke:#9499AB;}
+ .d2-443684297 .stroke-N4{stroke:#CFD2DD;}
+ .d2-443684297 .stroke-N5{stroke:#DEE1EB;}
+ .d2-443684297 .stroke-N6{stroke:#EEF1F8;}
+ .d2-443684297 .stroke-N7{stroke:#FFFFFF;}
+ .d2-443684297 .stroke-B1{stroke:#0D32B2;}
+ .d2-443684297 .stroke-B2{stroke:#0D32B2;}
+ .d2-443684297 .stroke-B3{stroke:#E3E9FD;}
+ .d2-443684297 .stroke-B4{stroke:#E3E9FD;}
+ .d2-443684297 .stroke-B5{stroke:#EDF0FD;}
+ .d2-443684297 .stroke-B6{stroke:#F7F8FE;}
+ .d2-443684297 .stroke-AA2{stroke:#4A6FF3;}
+ .d2-443684297 .stroke-AA4{stroke:#EDF0FD;}
+ .d2-443684297 .stroke-AA5{stroke:#F7F8FE;}
+ .d2-443684297 .stroke-AB4{stroke:#EDF0FD;}
+ .d2-443684297 .stroke-AB5{stroke:#F7F8FE;}
+ .d2-443684297 .background-color-N1{background-color:#0A0F25;}
+ .d2-443684297 .background-color-N2{background-color:#676C7E;}
+ .d2-443684297 .background-color-N3{background-color:#9499AB;}
+ .d2-443684297 .background-color-N4{background-color:#CFD2DD;}
+ .d2-443684297 .background-color-N5{background-color:#DEE1EB;}
+ .d2-443684297 .background-color-N6{background-color:#EEF1F8;}
+ .d2-443684297 .background-color-N7{background-color:#FFFFFF;}
+ .d2-443684297 .background-color-B1{background-color:#0D32B2;}
+ .d2-443684297 .background-color-B2{background-color:#0D32B2;}
+ .d2-443684297 .background-color-B3{background-color:#E3E9FD;}
+ .d2-443684297 .background-color-B4{background-color:#E3E9FD;}
+ .d2-443684297 .background-color-B5{background-color:#EDF0FD;}
+ .d2-443684297 .background-color-B6{background-color:#F7F8FE;}
+ .d2-443684297 .background-color-AA2{background-color:#4A6FF3;}
+ .d2-443684297 .background-color-AA4{background-color:#EDF0FD;}
+ .d2-443684297 .background-color-AA5{background-color:#F7F8FE;}
+ .d2-443684297 .background-color-AB4{background-color:#EDF0FD;}
+ .d2-443684297 .background-color-AB5{background-color:#F7F8FE;}
+ .d2-443684297 .color-N1{color:#0A0F25;}
+ .d2-443684297 .color-N2{color:#676C7E;}
+ .d2-443684297 .color-N3{color:#9499AB;}
+ .d2-443684297 .color-N4{color:#CFD2DD;}
+ .d2-443684297 .color-N5{color:#DEE1EB;}
+ .d2-443684297 .color-N6{color:#EEF1F8;}
+ .d2-443684297 .color-N7{color:#FFFFFF;}
+ .d2-443684297 .color-B1{color:#0D32B2;}
+ .d2-443684297 .color-B2{color:#0D32B2;}
+ .d2-443684297 .color-B3{color:#E3E9FD;}
+ .d2-443684297 .color-B4{color:#E3E9FD;}
+ .d2-443684297 .color-B5{color:#EDF0FD;}
+ .d2-443684297 .color-B6{color:#F7F8FE;}
+ .d2-443684297 .color-AA2{color:#4A6FF3;}
+ .d2-443684297 .color-AA4{color:#EDF0FD;}
+ .d2-443684297 .color-AA5{color:#F7F8FE;}
+ .d2-443684297 .color-AB4{color:#EDF0FD;}
+ .d2-443684297 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>lambda-build.yaml lambda-deploy.yaml apollo-deploy.yaml Push to main branch GitHub Actions S3 Terraform AWS Manual Trigger GitHub Actions AWS Apollo Repo GitHub Actions AWS Triggers Builds zip and pushes it Pulls zip to deploy Changes live lambdas Launches Builds zip pushes them to S3. Deploys lambdas using Terraform Triggered manually/push to master test test test test test test test test
diff --git a/e2etests/testdata/regression/elk_alignment/elk/sketch.exp.svg b/e2etests/testdata/regression/elk_alignment/elk/sketch.exp.svg
index 31bcf5383..e309e539c 100644
--- a/e2etests/testdata/regression/elk_alignment/elk/sketch.exp.svg
+++ b/e2etests/testdata/regression/elk_alignment/elk/sketch.exp.svg
@@ -1,24 +1,24 @@
-x a b
+ .d2-260708190 .fill-N1{fill:#0A0F25;}
+ .d2-260708190 .fill-N2{fill:#676C7E;}
+ .d2-260708190 .fill-N3{fill:#9499AB;}
+ .d2-260708190 .fill-N4{fill:#CFD2DD;}
+ .d2-260708190 .fill-N5{fill:#DEE1EB;}
+ .d2-260708190 .fill-N6{fill:#EEF1F8;}
+ .d2-260708190 .fill-N7{fill:#FFFFFF;}
+ .d2-260708190 .fill-B1{fill:#0D32B2;}
+ .d2-260708190 .fill-B2{fill:#0D32B2;}
+ .d2-260708190 .fill-B3{fill:#E3E9FD;}
+ .d2-260708190 .fill-B4{fill:#E3E9FD;}
+ .d2-260708190 .fill-B5{fill:#EDF0FD;}
+ .d2-260708190 .fill-B6{fill:#F7F8FE;}
+ .d2-260708190 .fill-AA2{fill:#4A6FF3;}
+ .d2-260708190 .fill-AA4{fill:#EDF0FD;}
+ .d2-260708190 .fill-AA5{fill:#F7F8FE;}
+ .d2-260708190 .fill-AB4{fill:#EDF0FD;}
+ .d2-260708190 .fill-AB5{fill:#F7F8FE;}
+ .d2-260708190 .stroke-N1{stroke:#0A0F25;}
+ .d2-260708190 .stroke-N2{stroke:#676C7E;}
+ .d2-260708190 .stroke-N3{stroke:#9499AB;}
+ .d2-260708190 .stroke-N4{stroke:#CFD2DD;}
+ .d2-260708190 .stroke-N5{stroke:#DEE1EB;}
+ .d2-260708190 .stroke-N6{stroke:#EEF1F8;}
+ .d2-260708190 .stroke-N7{stroke:#FFFFFF;}
+ .d2-260708190 .stroke-B1{stroke:#0D32B2;}
+ .d2-260708190 .stroke-B2{stroke:#0D32B2;}
+ .d2-260708190 .stroke-B3{stroke:#E3E9FD;}
+ .d2-260708190 .stroke-B4{stroke:#E3E9FD;}
+ .d2-260708190 .stroke-B5{stroke:#EDF0FD;}
+ .d2-260708190 .stroke-B6{stroke:#F7F8FE;}
+ .d2-260708190 .stroke-AA2{stroke:#4A6FF3;}
+ .d2-260708190 .stroke-AA4{stroke:#EDF0FD;}
+ .d2-260708190 .stroke-AA5{stroke:#F7F8FE;}
+ .d2-260708190 .stroke-AB4{stroke:#EDF0FD;}
+ .d2-260708190 .stroke-AB5{stroke:#F7F8FE;}
+ .d2-260708190 .background-color-N1{background-color:#0A0F25;}
+ .d2-260708190 .background-color-N2{background-color:#676C7E;}
+ .d2-260708190 .background-color-N3{background-color:#9499AB;}
+ .d2-260708190 .background-color-N4{background-color:#CFD2DD;}
+ .d2-260708190 .background-color-N5{background-color:#DEE1EB;}
+ .d2-260708190 .background-color-N6{background-color:#EEF1F8;}
+ .d2-260708190 .background-color-N7{background-color:#FFFFFF;}
+ .d2-260708190 .background-color-B1{background-color:#0D32B2;}
+ .d2-260708190 .background-color-B2{background-color:#0D32B2;}
+ .d2-260708190 .background-color-B3{background-color:#E3E9FD;}
+ .d2-260708190 .background-color-B4{background-color:#E3E9FD;}
+ .d2-260708190 .background-color-B5{background-color:#EDF0FD;}
+ .d2-260708190 .background-color-B6{background-color:#F7F8FE;}
+ .d2-260708190 .background-color-AA2{background-color:#4A6FF3;}
+ .d2-260708190 .background-color-AA4{background-color:#EDF0FD;}
+ .d2-260708190 .background-color-AA5{background-color:#F7F8FE;}
+ .d2-260708190 .background-color-AB4{background-color:#EDF0FD;}
+ .d2-260708190 .background-color-AB5{background-color:#F7F8FE;}
+ .d2-260708190 .color-N1{color:#0A0F25;}
+ .d2-260708190 .color-N2{color:#676C7E;}
+ .d2-260708190 .color-N3{color:#9499AB;}
+ .d2-260708190 .color-N4{color:#CFD2DD;}
+ .d2-260708190 .color-N5{color:#DEE1EB;}
+ .d2-260708190 .color-N6{color:#EEF1F8;}
+ .d2-260708190 .color-N7{color:#FFFFFF;}
+ .d2-260708190 .color-B1{color:#0D32B2;}
+ .d2-260708190 .color-B2{color:#0D32B2;}
+ .d2-260708190 .color-B3{color:#E3E9FD;}
+ .d2-260708190 .color-B4{color:#E3E9FD;}
+ .d2-260708190 .color-B5{color:#EDF0FD;}
+ .d2-260708190 .color-B6{color:#F7F8FE;}
+ .d2-260708190 .color-AA2{color:#4A6FF3;}
+ .d2-260708190 .color-AA4{color:#EDF0FD;}
+ .d2-260708190 .color-AA5{color:#F7F8FE;}
+ .d2-260708190 .color-AB4{color:#EDF0FD;}
+ .d2-260708190 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>x a b
\ No newline at end of file
diff --git a/e2etests/testdata/regression/elk_loop_panic/elk/sketch.exp.svg b/e2etests/testdata/regression/elk_loop_panic/elk/sketch.exp.svg
index c08b92bb4..a540f005f 100644
--- a/e2etests/testdata/regression/elk_loop_panic/elk/sketch.exp.svg
+++ b/e2etests/testdata/regression/elk_loop_panic/elk/sketch.exp.svg
@@ -1,17 +1,17 @@
-Oldest message
@@ -841,7 +841,7 @@
Next message will be
inserted here
-
M0 M1 M2 M3 M4 M5 M6
+M0 M1 M2 M3 M4 M5 M6
\ No newline at end of file
diff --git a/e2etests/testdata/regression/elk_order/elk/sketch.exp.svg b/e2etests/testdata/regression/elk_order/elk/sketch.exp.svg
index 6337b613f..2de6d4636 100644
--- a/e2etests/testdata/regression/elk_order/elk/sketch.exp.svg
+++ b/e2etests/testdata/regression/elk_order/elk/sketch.exp.svg
@@ -1,21 +1,21 @@
-a c d a b
+ .d2-2585728912 .fill-N1{fill:#0A0F25;}
+ .d2-2585728912 .fill-N2{fill:#676C7E;}
+ .d2-2585728912 .fill-N3{fill:#9499AB;}
+ .d2-2585728912 .fill-N4{fill:#CFD2DD;}
+ .d2-2585728912 .fill-N5{fill:#DEE1EB;}
+ .d2-2585728912 .fill-N6{fill:#EEF1F8;}
+ .d2-2585728912 .fill-N7{fill:#FFFFFF;}
+ .d2-2585728912 .fill-B1{fill:#0D32B2;}
+ .d2-2585728912 .fill-B2{fill:#0D32B2;}
+ .d2-2585728912 .fill-B3{fill:#E3E9FD;}
+ .d2-2585728912 .fill-B4{fill:#E3E9FD;}
+ .d2-2585728912 .fill-B5{fill:#EDF0FD;}
+ .d2-2585728912 .fill-B6{fill:#F7F8FE;}
+ .d2-2585728912 .fill-AA2{fill:#4A6FF3;}
+ .d2-2585728912 .fill-AA4{fill:#EDF0FD;}
+ .d2-2585728912 .fill-AA5{fill:#F7F8FE;}
+ .d2-2585728912 .fill-AB4{fill:#EDF0FD;}
+ .d2-2585728912 .fill-AB5{fill:#F7F8FE;}
+ .d2-2585728912 .stroke-N1{stroke:#0A0F25;}
+ .d2-2585728912 .stroke-N2{stroke:#676C7E;}
+ .d2-2585728912 .stroke-N3{stroke:#9499AB;}
+ .d2-2585728912 .stroke-N4{stroke:#CFD2DD;}
+ .d2-2585728912 .stroke-N5{stroke:#DEE1EB;}
+ .d2-2585728912 .stroke-N6{stroke:#EEF1F8;}
+ .d2-2585728912 .stroke-N7{stroke:#FFFFFF;}
+ .d2-2585728912 .stroke-B1{stroke:#0D32B2;}
+ .d2-2585728912 .stroke-B2{stroke:#0D32B2;}
+ .d2-2585728912 .stroke-B3{stroke:#E3E9FD;}
+ .d2-2585728912 .stroke-B4{stroke:#E3E9FD;}
+ .d2-2585728912 .stroke-B5{stroke:#EDF0FD;}
+ .d2-2585728912 .stroke-B6{stroke:#F7F8FE;}
+ .d2-2585728912 .stroke-AA2{stroke:#4A6FF3;}
+ .d2-2585728912 .stroke-AA4{stroke:#EDF0FD;}
+ .d2-2585728912 .stroke-AA5{stroke:#F7F8FE;}
+ .d2-2585728912 .stroke-AB4{stroke:#EDF0FD;}
+ .d2-2585728912 .stroke-AB5{stroke:#F7F8FE;}
+ .d2-2585728912 .background-color-N1{background-color:#0A0F25;}
+ .d2-2585728912 .background-color-N2{background-color:#676C7E;}
+ .d2-2585728912 .background-color-N3{background-color:#9499AB;}
+ .d2-2585728912 .background-color-N4{background-color:#CFD2DD;}
+ .d2-2585728912 .background-color-N5{background-color:#DEE1EB;}
+ .d2-2585728912 .background-color-N6{background-color:#EEF1F8;}
+ .d2-2585728912 .background-color-N7{background-color:#FFFFFF;}
+ .d2-2585728912 .background-color-B1{background-color:#0D32B2;}
+ .d2-2585728912 .background-color-B2{background-color:#0D32B2;}
+ .d2-2585728912 .background-color-B3{background-color:#E3E9FD;}
+ .d2-2585728912 .background-color-B4{background-color:#E3E9FD;}
+ .d2-2585728912 .background-color-B5{background-color:#EDF0FD;}
+ .d2-2585728912 .background-color-B6{background-color:#F7F8FE;}
+ .d2-2585728912 .background-color-AA2{background-color:#4A6FF3;}
+ .d2-2585728912 .background-color-AA4{background-color:#EDF0FD;}
+ .d2-2585728912 .background-color-AA5{background-color:#F7F8FE;}
+ .d2-2585728912 .background-color-AB4{background-color:#EDF0FD;}
+ .d2-2585728912 .background-color-AB5{background-color:#F7F8FE;}
+ .d2-2585728912 .color-N1{color:#0A0F25;}
+ .d2-2585728912 .color-N2{color:#676C7E;}
+ .d2-2585728912 .color-N3{color:#9499AB;}
+ .d2-2585728912 .color-N4{color:#CFD2DD;}
+ .d2-2585728912 .color-N5{color:#DEE1EB;}
+ .d2-2585728912 .color-N6{color:#EEF1F8;}
+ .d2-2585728912 .color-N7{color:#FFFFFF;}
+ .d2-2585728912 .color-B1{color:#0D32B2;}
+ .d2-2585728912 .color-B2{color:#0D32B2;}
+ .d2-2585728912 .color-B3{color:#E3E9FD;}
+ .d2-2585728912 .color-B4{color:#E3E9FD;}
+ .d2-2585728912 .color-B5{color:#EDF0FD;}
+ .d2-2585728912 .color-B6{color:#F7F8FE;}
+ .d2-2585728912 .color-AA2{color:#4A6FF3;}
+ .d2-2585728912 .color-AA4{color:#EDF0FD;}
+ .d2-2585728912 .color-AA5{color:#F7F8FE;}
+ .d2-2585728912 .color-AB4{color:#EDF0FD;}
+ .d2-2585728912 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>a c d a b
\ No newline at end of file
diff --git a/e2etests/testdata/regression/nested_steps/elk/sketch.exp.svg b/e2etests/testdata/regression/nested_steps/elk/sketch.exp.svg
index 588203b2f..9642663fc 100644
--- a/e2etests/testdata/regression/nested_steps/elk/sketch.exp.svg
+++ b/e2etests/testdata/regression/nested_steps/elk/sketch.exp.svg
@@ -1,17 +1,17 @@
-x linux: because a PC is a terrible thing to waste
-
a You don't have to know how the computer works, just how to work the computer.
+a You don't have to know how the computer works, just how to work the computer.
\ No newline at end of file
diff --git a/e2etests/testdata/regression/opacity-on-label/elk/sketch.exp.svg b/e2etests/testdata/regression/opacity-on-label/elk/sketch.exp.svg
index 91cb9aee8..b9f8bad42 100644
--- a/e2etests/testdata/regression/opacity-on-label/elk/sketch.exp.svg
+++ b/e2etests/testdata/regression/opacity-on-label/elk/sketch.exp.svg
@@ -1,28 +1,28 @@
-Kubernetes opensvc k8s-master1 k8s-master2 k8s-master3 k8s-worker1 k8s-worker2 k8s-worker3 VM1 VM2 keycloak heptapod harbor vault
-
+ .d2-2269130381 .fill-N1{fill:#0A0F25;}
+ .d2-2269130381 .fill-N2{fill:#676C7E;}
+ .d2-2269130381 .fill-N3{fill:#9499AB;}
+ .d2-2269130381 .fill-N4{fill:#CFD2DD;}
+ .d2-2269130381 .fill-N5{fill:#DEE1EB;}
+ .d2-2269130381 .fill-N6{fill:#EEF1F8;}
+ .d2-2269130381 .fill-N7{fill:#FFFFFF;}
+ .d2-2269130381 .fill-B1{fill:#0D32B2;}
+ .d2-2269130381 .fill-B2{fill:#0D32B2;}
+ .d2-2269130381 .fill-B3{fill:#E3E9FD;}
+ .d2-2269130381 .fill-B4{fill:#E3E9FD;}
+ .d2-2269130381 .fill-B5{fill:#EDF0FD;}
+ .d2-2269130381 .fill-B6{fill:#F7F8FE;}
+ .d2-2269130381 .fill-AA2{fill:#4A6FF3;}
+ .d2-2269130381 .fill-AA4{fill:#EDF0FD;}
+ .d2-2269130381 .fill-AA5{fill:#F7F8FE;}
+ .d2-2269130381 .fill-AB4{fill:#EDF0FD;}
+ .d2-2269130381 .fill-AB5{fill:#F7F8FE;}
+ .d2-2269130381 .stroke-N1{stroke:#0A0F25;}
+ .d2-2269130381 .stroke-N2{stroke:#676C7E;}
+ .d2-2269130381 .stroke-N3{stroke:#9499AB;}
+ .d2-2269130381 .stroke-N4{stroke:#CFD2DD;}
+ .d2-2269130381 .stroke-N5{stroke:#DEE1EB;}
+ .d2-2269130381 .stroke-N6{stroke:#EEF1F8;}
+ .d2-2269130381 .stroke-N7{stroke:#FFFFFF;}
+ .d2-2269130381 .stroke-B1{stroke:#0D32B2;}
+ .d2-2269130381 .stroke-B2{stroke:#0D32B2;}
+ .d2-2269130381 .stroke-B3{stroke:#E3E9FD;}
+ .d2-2269130381 .stroke-B4{stroke:#E3E9FD;}
+ .d2-2269130381 .stroke-B5{stroke:#EDF0FD;}
+ .d2-2269130381 .stroke-B6{stroke:#F7F8FE;}
+ .d2-2269130381 .stroke-AA2{stroke:#4A6FF3;}
+ .d2-2269130381 .stroke-AA4{stroke:#EDF0FD;}
+ .d2-2269130381 .stroke-AA5{stroke:#F7F8FE;}
+ .d2-2269130381 .stroke-AB4{stroke:#EDF0FD;}
+ .d2-2269130381 .stroke-AB5{stroke:#F7F8FE;}
+ .d2-2269130381 .background-color-N1{background-color:#0A0F25;}
+ .d2-2269130381 .background-color-N2{background-color:#676C7E;}
+ .d2-2269130381 .background-color-N3{background-color:#9499AB;}
+ .d2-2269130381 .background-color-N4{background-color:#CFD2DD;}
+ .d2-2269130381 .background-color-N5{background-color:#DEE1EB;}
+ .d2-2269130381 .background-color-N6{background-color:#EEF1F8;}
+ .d2-2269130381 .background-color-N7{background-color:#FFFFFF;}
+ .d2-2269130381 .background-color-B1{background-color:#0D32B2;}
+ .d2-2269130381 .background-color-B2{background-color:#0D32B2;}
+ .d2-2269130381 .background-color-B3{background-color:#E3E9FD;}
+ .d2-2269130381 .background-color-B4{background-color:#E3E9FD;}
+ .d2-2269130381 .background-color-B5{background-color:#EDF0FD;}
+ .d2-2269130381 .background-color-B6{background-color:#F7F8FE;}
+ .d2-2269130381 .background-color-AA2{background-color:#4A6FF3;}
+ .d2-2269130381 .background-color-AA4{background-color:#EDF0FD;}
+ .d2-2269130381 .background-color-AA5{background-color:#F7F8FE;}
+ .d2-2269130381 .background-color-AB4{background-color:#EDF0FD;}
+ .d2-2269130381 .background-color-AB5{background-color:#F7F8FE;}
+ .d2-2269130381 .color-N1{color:#0A0F25;}
+ .d2-2269130381 .color-N2{color:#676C7E;}
+ .d2-2269130381 .color-N3{color:#9499AB;}
+ .d2-2269130381 .color-N4{color:#CFD2DD;}
+ .d2-2269130381 .color-N5{color:#DEE1EB;}
+ .d2-2269130381 .color-N6{color:#EEF1F8;}
+ .d2-2269130381 .color-N7{color:#FFFFFF;}
+ .d2-2269130381 .color-B1{color:#0D32B2;}
+ .d2-2269130381 .color-B2{color:#0D32B2;}
+ .d2-2269130381 .color-B3{color:#E3E9FD;}
+ .d2-2269130381 .color-B4{color:#E3E9FD;}
+ .d2-2269130381 .color-B5{color:#EDF0FD;}
+ .d2-2269130381 .color-B6{color:#F7F8FE;}
+ .d2-2269130381 .color-AA2{color:#4A6FF3;}
+ .d2-2269130381 .color-AA4{color:#EDF0FD;}
+ .d2-2269130381 .color-AA5{color:#F7F8FE;}
+ .d2-2269130381 .color-AB4{color:#EDF0FD;}
+ .d2-2269130381 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>Kubernetes opensvc k8s-master1 k8s-master2 k8s-master3 k8s-worker1 k8s-worker2 k8s-worker3 VM1 VM2 keycloak heptapod harbor vault
+
diff --git a/e2etests/testdata/regression/overlapping-edge-label/elk/board.exp.json b/e2etests/testdata/regression/overlapping-edge-label/elk/board.exp.json
index 59488ccb7..a57d70a04 100644
--- a/e2etests/testdata/regression/overlapping-edge-label/elk/board.exp.json
+++ b/e2etests/testdata/regression/overlapping-edge-label/elk/board.exp.json
@@ -448,11 +448,11 @@
"y": 369
},
{
- "x": 427.9,
+ "x": 427.8999938964844,
"y": 369
},
{
- "x": 427.9,
+ "x": 427.8999938964844,
"y": 409
}
],
@@ -486,11 +486,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 482.3,
+ "x": 482.29998779296875,
"y": 178
},
{
- "x": 482.3,
+ "x": 482.29998779296875,
"y": 409
}
],
@@ -524,11 +524,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 536.7,
+ "x": 536.7000122070312,
"y": 178
},
{
- "x": 536.7,
+ "x": 536.7000122070312,
"y": 409
}
],
@@ -562,19 +562,19 @@
"labelPercentage": 0,
"route": [
{
- "x": 735.7,
+ "x": 735.7000122070312,
"y": 178
},
{
- "x": 735.7,
+ "x": 735.7000122070312,
"y": 369
},
{
- "x": 591.1,
+ "x": 591.0999755859375,
"y": 369
},
{
- "x": 591.1,
+ "x": 591.0999755859375,
"y": 409
}
],
diff --git a/e2etests/testdata/regression/overlapping-edge-label/elk/sketch.exp.svg b/e2etests/testdata/regression/overlapping-edge-label/elk/sketch.exp.svg
index 938f34c40..ac1f5a7fb 100644
--- a/e2etests/testdata/regression/overlapping-edge-label/elk/sketch.exp.svg
+++ b/e2etests/testdata/regression/overlapping-edge-label/elk/sketch.exp.svg
@@ -1,24 +1,24 @@
-Kubernetes opensvc k8s-master1 k8s-master2 k8s-master3 k8s-worker1 k8s-worker2 k8s-worker3 VM1 VM2 keycloak heptapod harbor vault
+ .d2-3733750487 .fill-N1{fill:#0A0F25;}
+ .d2-3733750487 .fill-N2{fill:#676C7E;}
+ .d2-3733750487 .fill-N3{fill:#9499AB;}
+ .d2-3733750487 .fill-N4{fill:#CFD2DD;}
+ .d2-3733750487 .fill-N5{fill:#DEE1EB;}
+ .d2-3733750487 .fill-N6{fill:#EEF1F8;}
+ .d2-3733750487 .fill-N7{fill:#FFFFFF;}
+ .d2-3733750487 .fill-B1{fill:#0D32B2;}
+ .d2-3733750487 .fill-B2{fill:#0D32B2;}
+ .d2-3733750487 .fill-B3{fill:#E3E9FD;}
+ .d2-3733750487 .fill-B4{fill:#E3E9FD;}
+ .d2-3733750487 .fill-B5{fill:#EDF0FD;}
+ .d2-3733750487 .fill-B6{fill:#F7F8FE;}
+ .d2-3733750487 .fill-AA2{fill:#4A6FF3;}
+ .d2-3733750487 .fill-AA4{fill:#EDF0FD;}
+ .d2-3733750487 .fill-AA5{fill:#F7F8FE;}
+ .d2-3733750487 .fill-AB4{fill:#EDF0FD;}
+ .d2-3733750487 .fill-AB5{fill:#F7F8FE;}
+ .d2-3733750487 .stroke-N1{stroke:#0A0F25;}
+ .d2-3733750487 .stroke-N2{stroke:#676C7E;}
+ .d2-3733750487 .stroke-N3{stroke:#9499AB;}
+ .d2-3733750487 .stroke-N4{stroke:#CFD2DD;}
+ .d2-3733750487 .stroke-N5{stroke:#DEE1EB;}
+ .d2-3733750487 .stroke-N6{stroke:#EEF1F8;}
+ .d2-3733750487 .stroke-N7{stroke:#FFFFFF;}
+ .d2-3733750487 .stroke-B1{stroke:#0D32B2;}
+ .d2-3733750487 .stroke-B2{stroke:#0D32B2;}
+ .d2-3733750487 .stroke-B3{stroke:#E3E9FD;}
+ .d2-3733750487 .stroke-B4{stroke:#E3E9FD;}
+ .d2-3733750487 .stroke-B5{stroke:#EDF0FD;}
+ .d2-3733750487 .stroke-B6{stroke:#F7F8FE;}
+ .d2-3733750487 .stroke-AA2{stroke:#4A6FF3;}
+ .d2-3733750487 .stroke-AA4{stroke:#EDF0FD;}
+ .d2-3733750487 .stroke-AA5{stroke:#F7F8FE;}
+ .d2-3733750487 .stroke-AB4{stroke:#EDF0FD;}
+ .d2-3733750487 .stroke-AB5{stroke:#F7F8FE;}
+ .d2-3733750487 .background-color-N1{background-color:#0A0F25;}
+ .d2-3733750487 .background-color-N2{background-color:#676C7E;}
+ .d2-3733750487 .background-color-N3{background-color:#9499AB;}
+ .d2-3733750487 .background-color-N4{background-color:#CFD2DD;}
+ .d2-3733750487 .background-color-N5{background-color:#DEE1EB;}
+ .d2-3733750487 .background-color-N6{background-color:#EEF1F8;}
+ .d2-3733750487 .background-color-N7{background-color:#FFFFFF;}
+ .d2-3733750487 .background-color-B1{background-color:#0D32B2;}
+ .d2-3733750487 .background-color-B2{background-color:#0D32B2;}
+ .d2-3733750487 .background-color-B3{background-color:#E3E9FD;}
+ .d2-3733750487 .background-color-B4{background-color:#E3E9FD;}
+ .d2-3733750487 .background-color-B5{background-color:#EDF0FD;}
+ .d2-3733750487 .background-color-B6{background-color:#F7F8FE;}
+ .d2-3733750487 .background-color-AA2{background-color:#4A6FF3;}
+ .d2-3733750487 .background-color-AA4{background-color:#EDF0FD;}
+ .d2-3733750487 .background-color-AA5{background-color:#F7F8FE;}
+ .d2-3733750487 .background-color-AB4{background-color:#EDF0FD;}
+ .d2-3733750487 .background-color-AB5{background-color:#F7F8FE;}
+ .d2-3733750487 .color-N1{color:#0A0F25;}
+ .d2-3733750487 .color-N2{color:#676C7E;}
+ .d2-3733750487 .color-N3{color:#9499AB;}
+ .d2-3733750487 .color-N4{color:#CFD2DD;}
+ .d2-3733750487 .color-N5{color:#DEE1EB;}
+ .d2-3733750487 .color-N6{color:#EEF1F8;}
+ .d2-3733750487 .color-N7{color:#FFFFFF;}
+ .d2-3733750487 .color-B1{color:#0D32B2;}
+ .d2-3733750487 .color-B2{color:#0D32B2;}
+ .d2-3733750487 .color-B3{color:#E3E9FD;}
+ .d2-3733750487 .color-B4{color:#E3E9FD;}
+ .d2-3733750487 .color-B5{color:#EDF0FD;}
+ .d2-3733750487 .color-B6{color:#F7F8FE;}
+ .d2-3733750487 .color-AA2{color:#4A6FF3;}
+ .d2-3733750487 .color-AA4{color:#EDF0FD;}
+ .d2-3733750487 .color-AA5{color:#F7F8FE;}
+ .d2-3733750487 .color-AB4{color:#EDF0FD;}
+ .d2-3733750487 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>Kubernetes opensvc k8s-master1 k8s-master2 k8s-master3 k8s-worker1 k8s-worker2 k8s-worker3 VM1 VM2 keycloak heptapod harbor vault
diff --git a/e2etests/testdata/regression/query_param_escape/dagre/sketch.exp.svg b/e2etests/testdata/regression/query_param_escape/dagre/sketch.exp.svg
index 93275fa12..e0184e4f9 100644
--- a/e2etests/testdata/regression/query_param_escape/dagre/sketch.exp.svg
+++ b/e2etests/testdata/regression/query_param_escape/dagre/sketch.exp.svg
@@ -1,10 +1,10 @@
-main root x y z x y z
-
+ .d2-2703766709 .fill-N1{fill:#0A0F25;}
+ .d2-2703766709 .fill-N2{fill:#676C7E;}
+ .d2-2703766709 .fill-N3{fill:#9499AB;}
+ .d2-2703766709 .fill-N4{fill:#CFD2DD;}
+ .d2-2703766709 .fill-N5{fill:#DEE1EB;}
+ .d2-2703766709 .fill-N6{fill:#EEF1F8;}
+ .d2-2703766709 .fill-N7{fill:#FFFFFF;}
+ .d2-2703766709 .fill-B1{fill:#0D32B2;}
+ .d2-2703766709 .fill-B2{fill:#0D32B2;}
+ .d2-2703766709 .fill-B3{fill:#E3E9FD;}
+ .d2-2703766709 .fill-B4{fill:#E3E9FD;}
+ .d2-2703766709 .fill-B5{fill:#EDF0FD;}
+ .d2-2703766709 .fill-B6{fill:#F7F8FE;}
+ .d2-2703766709 .fill-AA2{fill:#4A6FF3;}
+ .d2-2703766709 .fill-AA4{fill:#EDF0FD;}
+ .d2-2703766709 .fill-AA5{fill:#F7F8FE;}
+ .d2-2703766709 .fill-AB4{fill:#EDF0FD;}
+ .d2-2703766709 .fill-AB5{fill:#F7F8FE;}
+ .d2-2703766709 .stroke-N1{stroke:#0A0F25;}
+ .d2-2703766709 .stroke-N2{stroke:#676C7E;}
+ .d2-2703766709 .stroke-N3{stroke:#9499AB;}
+ .d2-2703766709 .stroke-N4{stroke:#CFD2DD;}
+ .d2-2703766709 .stroke-N5{stroke:#DEE1EB;}
+ .d2-2703766709 .stroke-N6{stroke:#EEF1F8;}
+ .d2-2703766709 .stroke-N7{stroke:#FFFFFF;}
+ .d2-2703766709 .stroke-B1{stroke:#0D32B2;}
+ .d2-2703766709 .stroke-B2{stroke:#0D32B2;}
+ .d2-2703766709 .stroke-B3{stroke:#E3E9FD;}
+ .d2-2703766709 .stroke-B4{stroke:#E3E9FD;}
+ .d2-2703766709 .stroke-B5{stroke:#EDF0FD;}
+ .d2-2703766709 .stroke-B6{stroke:#F7F8FE;}
+ .d2-2703766709 .stroke-AA2{stroke:#4A6FF3;}
+ .d2-2703766709 .stroke-AA4{stroke:#EDF0FD;}
+ .d2-2703766709 .stroke-AA5{stroke:#F7F8FE;}
+ .d2-2703766709 .stroke-AB4{stroke:#EDF0FD;}
+ .d2-2703766709 .stroke-AB5{stroke:#F7F8FE;}
+ .d2-2703766709 .background-color-N1{background-color:#0A0F25;}
+ .d2-2703766709 .background-color-N2{background-color:#676C7E;}
+ .d2-2703766709 .background-color-N3{background-color:#9499AB;}
+ .d2-2703766709 .background-color-N4{background-color:#CFD2DD;}
+ .d2-2703766709 .background-color-N5{background-color:#DEE1EB;}
+ .d2-2703766709 .background-color-N6{background-color:#EEF1F8;}
+ .d2-2703766709 .background-color-N7{background-color:#FFFFFF;}
+ .d2-2703766709 .background-color-B1{background-color:#0D32B2;}
+ .d2-2703766709 .background-color-B2{background-color:#0D32B2;}
+ .d2-2703766709 .background-color-B3{background-color:#E3E9FD;}
+ .d2-2703766709 .background-color-B4{background-color:#E3E9FD;}
+ .d2-2703766709 .background-color-B5{background-color:#EDF0FD;}
+ .d2-2703766709 .background-color-B6{background-color:#F7F8FE;}
+ .d2-2703766709 .background-color-AA2{background-color:#4A6FF3;}
+ .d2-2703766709 .background-color-AA4{background-color:#EDF0FD;}
+ .d2-2703766709 .background-color-AA5{background-color:#F7F8FE;}
+ .d2-2703766709 .background-color-AB4{background-color:#EDF0FD;}
+ .d2-2703766709 .background-color-AB5{background-color:#F7F8FE;}
+ .d2-2703766709 .color-N1{color:#0A0F25;}
+ .d2-2703766709 .color-N2{color:#676C7E;}
+ .d2-2703766709 .color-N3{color:#9499AB;}
+ .d2-2703766709 .color-N4{color:#CFD2DD;}
+ .d2-2703766709 .color-N5{color:#DEE1EB;}
+ .d2-2703766709 .color-N6{color:#EEF1F8;}
+ .d2-2703766709 .color-N7{color:#FFFFFF;}
+ .d2-2703766709 .color-B1{color:#0D32B2;}
+ .d2-2703766709 .color-B2{color:#0D32B2;}
+ .d2-2703766709 .color-B3{color:#E3E9FD;}
+ .d2-2703766709 .color-B4{color:#E3E9FD;}
+ .d2-2703766709 .color-B5{color:#EDF0FD;}
+ .d2-2703766709 .color-B6{color:#F7F8FE;}
+ .d2-2703766709 .color-AA2{color:#4A6FF3;}
+ .d2-2703766709 .color-AA4{color:#EDF0FD;}
+ .d2-2703766709 .color-AA5{color:#F7F8FE;}
+ .d2-2703766709 .color-AB4{color:#EDF0FD;}
+ .d2-2703766709 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>main root x y z x y z
+
\ No newline at end of file
diff --git a/e2etests/testdata/regression/root-container/elk/sketch.exp.svg b/e2etests/testdata/regression/root-container/elk/sketch.exp.svg
index c89877e41..6ccd70f53 100644
--- a/e2etests/testdata/regression/root-container/elk/sketch.exp.svg
+++ b/e2etests/testdata/regression/root-container/elk/sketch.exp.svg
@@ -1,17 +1,17 @@
-a c b l1 l2c1 l2c3 l2c2 l3c1 l3c2 l4 b a c a c b a b c c1 c2 c3 a b c
+ .d2-2334083304 .fill-N1{fill:#0A0F25;}
+ .d2-2334083304 .fill-N2{fill:#676C7E;}
+ .d2-2334083304 .fill-N3{fill:#9499AB;}
+ .d2-2334083304 .fill-N4{fill:#CFD2DD;}
+ .d2-2334083304 .fill-N5{fill:#DEE1EB;}
+ .d2-2334083304 .fill-N6{fill:#EEF1F8;}
+ .d2-2334083304 .fill-N7{fill:#FFFFFF;}
+ .d2-2334083304 .fill-B1{fill:#0D32B2;}
+ .d2-2334083304 .fill-B2{fill:#0D32B2;}
+ .d2-2334083304 .fill-B3{fill:#E3E9FD;}
+ .d2-2334083304 .fill-B4{fill:#E3E9FD;}
+ .d2-2334083304 .fill-B5{fill:#EDF0FD;}
+ .d2-2334083304 .fill-B6{fill:#F7F8FE;}
+ .d2-2334083304 .fill-AA2{fill:#4A6FF3;}
+ .d2-2334083304 .fill-AA4{fill:#EDF0FD;}
+ .d2-2334083304 .fill-AA5{fill:#F7F8FE;}
+ .d2-2334083304 .fill-AB4{fill:#EDF0FD;}
+ .d2-2334083304 .fill-AB5{fill:#F7F8FE;}
+ .d2-2334083304 .stroke-N1{stroke:#0A0F25;}
+ .d2-2334083304 .stroke-N2{stroke:#676C7E;}
+ .d2-2334083304 .stroke-N3{stroke:#9499AB;}
+ .d2-2334083304 .stroke-N4{stroke:#CFD2DD;}
+ .d2-2334083304 .stroke-N5{stroke:#DEE1EB;}
+ .d2-2334083304 .stroke-N6{stroke:#EEF1F8;}
+ .d2-2334083304 .stroke-N7{stroke:#FFFFFF;}
+ .d2-2334083304 .stroke-B1{stroke:#0D32B2;}
+ .d2-2334083304 .stroke-B2{stroke:#0D32B2;}
+ .d2-2334083304 .stroke-B3{stroke:#E3E9FD;}
+ .d2-2334083304 .stroke-B4{stroke:#E3E9FD;}
+ .d2-2334083304 .stroke-B5{stroke:#EDF0FD;}
+ .d2-2334083304 .stroke-B6{stroke:#F7F8FE;}
+ .d2-2334083304 .stroke-AA2{stroke:#4A6FF3;}
+ .d2-2334083304 .stroke-AA4{stroke:#EDF0FD;}
+ .d2-2334083304 .stroke-AA5{stroke:#F7F8FE;}
+ .d2-2334083304 .stroke-AB4{stroke:#EDF0FD;}
+ .d2-2334083304 .stroke-AB5{stroke:#F7F8FE;}
+ .d2-2334083304 .background-color-N1{background-color:#0A0F25;}
+ .d2-2334083304 .background-color-N2{background-color:#676C7E;}
+ .d2-2334083304 .background-color-N3{background-color:#9499AB;}
+ .d2-2334083304 .background-color-N4{background-color:#CFD2DD;}
+ .d2-2334083304 .background-color-N5{background-color:#DEE1EB;}
+ .d2-2334083304 .background-color-N6{background-color:#EEF1F8;}
+ .d2-2334083304 .background-color-N7{background-color:#FFFFFF;}
+ .d2-2334083304 .background-color-B1{background-color:#0D32B2;}
+ .d2-2334083304 .background-color-B2{background-color:#0D32B2;}
+ .d2-2334083304 .background-color-B3{background-color:#E3E9FD;}
+ .d2-2334083304 .background-color-B4{background-color:#E3E9FD;}
+ .d2-2334083304 .background-color-B5{background-color:#EDF0FD;}
+ .d2-2334083304 .background-color-B6{background-color:#F7F8FE;}
+ .d2-2334083304 .background-color-AA2{background-color:#4A6FF3;}
+ .d2-2334083304 .background-color-AA4{background-color:#EDF0FD;}
+ .d2-2334083304 .background-color-AA5{background-color:#F7F8FE;}
+ .d2-2334083304 .background-color-AB4{background-color:#EDF0FD;}
+ .d2-2334083304 .background-color-AB5{background-color:#F7F8FE;}
+ .d2-2334083304 .color-N1{color:#0A0F25;}
+ .d2-2334083304 .color-N2{color:#676C7E;}
+ .d2-2334083304 .color-N3{color:#9499AB;}
+ .d2-2334083304 .color-N4{color:#CFD2DD;}
+ .d2-2334083304 .color-N5{color:#DEE1EB;}
+ .d2-2334083304 .color-N6{color:#EEF1F8;}
+ .d2-2334083304 .color-N7{color:#FFFFFF;}
+ .d2-2334083304 .color-B1{color:#0D32B2;}
+ .d2-2334083304 .color-B2{color:#0D32B2;}
+ .d2-2334083304 .color-B3{color:#E3E9FD;}
+ .d2-2334083304 .color-B4{color:#E3E9FD;}
+ .d2-2334083304 .color-B5{color:#EDF0FD;}
+ .d2-2334083304 .color-B6{color:#F7F8FE;}
+ .d2-2334083304 .color-AA2{color:#4A6FF3;}
+ .d2-2334083304 .color-AA4{color:#EDF0FD;}
+ .d2-2334083304 .color-AA5{color:#F7F8FE;}
+ .d2-2334083304 .color-AB4{color:#EDF0FD;}
+ .d2-2334083304 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>a c b l1 l2c1 l2c3 l2c2 l3c1 l3c2 l4 b a c a c b a b c c1 c2 c3 a b c
\ No newline at end of file
diff --git a/e2etests/testdata/regression/straight_hierarchy_container_direction_right/elk/sketch.exp.svg b/e2etests/testdata/regression/straight_hierarchy_container_direction_right/elk/sketch.exp.svg
index 6d5a39103..29e2dce86 100644
--- a/e2etests/testdata/regression/straight_hierarchy_container_direction_right/elk/sketch.exp.svg
+++ b/e2etests/testdata/regression/straight_hierarchy_container_direction_right/elk/sketch.exp.svg
@@ -1,17 +1,17 @@
-OEM Factory OEM Warehouse Distributor Warehouse Gos Warehouse Customer Site Workflow-I (Warehousing, Installation) Master Regional-1 Regional-2 Regional-N
@@ -842,7 +842,7 @@
Staging
Dispatch to Site
-
Installation Support
+Installation Support
\ No newline at end of file
diff --git a/e2etests/testdata/regression/unconnected/elk/board.exp.json b/e2etests/testdata/regression/unconnected/elk/board.exp.json
index 6c0c100c2..be39c6d92 100644
--- a/e2etests/testdata/regression/unconnected/elk/board.exp.json
+++ b/e2etests/testdata/regression/unconnected/elk/board.exp.json
@@ -134,7 +134,7 @@
"y": 12
},
"width": 940,
- "height": 383,
+ "height": 384,
"opacity": 1,
"strokeDash": 0,
"strokeWidth": 2,
@@ -662,11 +662,11 @@
},
{
"x": 278,
- "y": 288.1875
+ "y": 288.18701171875
},
{
"x": 652,
- "y": 288.1875
+ "y": 288.18701171875
}
],
"animated": false,
@@ -792,19 +792,19 @@
},
{
"x": 880,
- "y": 249.66666666666669
+ "y": 249.66600036621094
},
{
"x": 1380,
- "y": 249.66666666666669
+ "y": 249.66600036621094
},
{
"x": 1380,
- "y": 184.66666666666669
+ "y": 184.66600036621094
},
{
"x": 1420,
- "y": 184.66666666666669
+ "y": 184.66600036621094
}
],
"animated": false,
@@ -838,19 +838,19 @@
"route": [
{
"x": 1090,
- "y": 115.33333333333333
+ "y": 115.33300018310547
},
{
"x": 1130,
- "y": 115.33333333333333
+ "y": 115.33300018310547
},
{
"x": 1130,
- "y": 156.33333333333334
+ "y": 156.33299255371094
},
{
"x": 1170,
- "y": 156.33333333333334
+ "y": 156.33299255371094
}
],
"animated": false,
@@ -884,11 +884,11 @@
"route": [
{
"x": 1290,
- "y": 164.66666666666669
+ "y": 164.66600036621094
},
{
"x": 1420,
- "y": 164.66666666666669
+ "y": 164.66600036621094
}
],
"animated": false,
@@ -922,19 +922,19 @@
"route": [
{
"x": 1420,
- "y": 144.66666666666669
+ "y": 144.66600036621094
},
{
"x": 1330,
- "y": 144.66666666666669
+ "y": 144.66600036621094
},
{
"x": 1330,
- "y": 88.66666666666666
+ "y": 88.66600036621094
},
{
"x": 1090,
- "y": 88.66666666666666
+ "y": 88.66600036621094
}
],
"animated": false,
diff --git a/e2etests/testdata/regression/unconnected/elk/sketch.exp.svg b/e2etests/testdata/regression/unconnected/elk/sketch.exp.svg
index 17c7fd19c..13f3466d5 100644
--- a/e2etests/testdata/regression/unconnected/elk/sketch.exp.svg
+++ b/e2etests/testdata/regression/unconnected/elk/sketch.exp.svg
@@ -1,21 +1,21 @@
-OEM Factory OEM Warehouse Distributor Warehouse Gos Warehouse Customer Site Workflow-I (Warehousing, Installation) Master Regional-1 Regional-2 Regional-N
+OEM Factory OEM Warehouse Distributor Warehouse Gos Warehouse Customer Site Workflow-I (Warehousing, Installation) Master Regional-1 Regional-2 Regional-N
Asset Tagging
Inventory
Staging
Dispatch to Site
-
Installation Support
+ Installation Support
\ No newline at end of file
diff --git a/e2etests/testdata/regression/unnamed_class_table_code/dagre/sketch.exp.svg b/e2etests/testdata/regression/unnamed_class_table_code/dagre/sketch.exp.svg
index 6d7364667..83c59f09c 100644
--- a/e2etests/testdata/regression/unnamed_class_table_code/dagre/sketch.exp.svg
+++ b/e2etests/testdata/regression/unnamed_class_table_code/dagre/sketch.exp.svg
@@ -1,24 +1,24 @@
-a b c
+ .d2-3776327244 .fill-N1{fill:#0A0F25;}
+ .d2-3776327244 .fill-N2{fill:#676C7E;}
+ .d2-3776327244 .fill-N3{fill:#9499AB;}
+ .d2-3776327244 .fill-N4{fill:#CFD2DD;}
+ .d2-3776327244 .fill-N5{fill:#DEE1EB;}
+ .d2-3776327244 .fill-N6{fill:#EEF1F8;}
+ .d2-3776327244 .fill-N7{fill:#FFFFFF;}
+ .d2-3776327244 .fill-B1{fill:#0D32B2;}
+ .d2-3776327244 .fill-B2{fill:#0D32B2;}
+ .d2-3776327244 .fill-B3{fill:#E3E9FD;}
+ .d2-3776327244 .fill-B4{fill:#E3E9FD;}
+ .d2-3776327244 .fill-B5{fill:#EDF0FD;}
+ .d2-3776327244 .fill-B6{fill:#F7F8FE;}
+ .d2-3776327244 .fill-AA2{fill:#4A6FF3;}
+ .d2-3776327244 .fill-AA4{fill:#EDF0FD;}
+ .d2-3776327244 .fill-AA5{fill:#F7F8FE;}
+ .d2-3776327244 .fill-AB4{fill:#EDF0FD;}
+ .d2-3776327244 .fill-AB5{fill:#F7F8FE;}
+ .d2-3776327244 .stroke-N1{stroke:#0A0F25;}
+ .d2-3776327244 .stroke-N2{stroke:#676C7E;}
+ .d2-3776327244 .stroke-N3{stroke:#9499AB;}
+ .d2-3776327244 .stroke-N4{stroke:#CFD2DD;}
+ .d2-3776327244 .stroke-N5{stroke:#DEE1EB;}
+ .d2-3776327244 .stroke-N6{stroke:#EEF1F8;}
+ .d2-3776327244 .stroke-N7{stroke:#FFFFFF;}
+ .d2-3776327244 .stroke-B1{stroke:#0D32B2;}
+ .d2-3776327244 .stroke-B2{stroke:#0D32B2;}
+ .d2-3776327244 .stroke-B3{stroke:#E3E9FD;}
+ .d2-3776327244 .stroke-B4{stroke:#E3E9FD;}
+ .d2-3776327244 .stroke-B5{stroke:#EDF0FD;}
+ .d2-3776327244 .stroke-B6{stroke:#F7F8FE;}
+ .d2-3776327244 .stroke-AA2{stroke:#4A6FF3;}
+ .d2-3776327244 .stroke-AA4{stroke:#EDF0FD;}
+ .d2-3776327244 .stroke-AA5{stroke:#F7F8FE;}
+ .d2-3776327244 .stroke-AB4{stroke:#EDF0FD;}
+ .d2-3776327244 .stroke-AB5{stroke:#F7F8FE;}
+ .d2-3776327244 .background-color-N1{background-color:#0A0F25;}
+ .d2-3776327244 .background-color-N2{background-color:#676C7E;}
+ .d2-3776327244 .background-color-N3{background-color:#9499AB;}
+ .d2-3776327244 .background-color-N4{background-color:#CFD2DD;}
+ .d2-3776327244 .background-color-N5{background-color:#DEE1EB;}
+ .d2-3776327244 .background-color-N6{background-color:#EEF1F8;}
+ .d2-3776327244 .background-color-N7{background-color:#FFFFFF;}
+ .d2-3776327244 .background-color-B1{background-color:#0D32B2;}
+ .d2-3776327244 .background-color-B2{background-color:#0D32B2;}
+ .d2-3776327244 .background-color-B3{background-color:#E3E9FD;}
+ .d2-3776327244 .background-color-B4{background-color:#E3E9FD;}
+ .d2-3776327244 .background-color-B5{background-color:#EDF0FD;}
+ .d2-3776327244 .background-color-B6{background-color:#F7F8FE;}
+ .d2-3776327244 .background-color-AA2{background-color:#4A6FF3;}
+ .d2-3776327244 .background-color-AA4{background-color:#EDF0FD;}
+ .d2-3776327244 .background-color-AA5{background-color:#F7F8FE;}
+ .d2-3776327244 .background-color-AB4{background-color:#EDF0FD;}
+ .d2-3776327244 .background-color-AB5{background-color:#F7F8FE;}
+ .d2-3776327244 .color-N1{color:#0A0F25;}
+ .d2-3776327244 .color-N2{color:#676C7E;}
+ .d2-3776327244 .color-N3{color:#9499AB;}
+ .d2-3776327244 .color-N4{color:#CFD2DD;}
+ .d2-3776327244 .color-N5{color:#DEE1EB;}
+ .d2-3776327244 .color-N6{color:#EEF1F8;}
+ .d2-3776327244 .color-N7{color:#FFFFFF;}
+ .d2-3776327244 .color-B1{color:#0D32B2;}
+ .d2-3776327244 .color-B2{color:#0D32B2;}
+ .d2-3776327244 .color-B3{color:#E3E9FD;}
+ .d2-3776327244 .color-B4{color:#E3E9FD;}
+ .d2-3776327244 .color-B5{color:#EDF0FD;}
+ .d2-3776327244 .color-B6{color:#F7F8FE;}
+ .d2-3776327244 .color-AA2{color:#4A6FF3;}
+ .d2-3776327244 .color-AA4{color:#EDF0FD;}
+ .d2-3776327244 .color-AA5{color:#F7F8FE;}
+ .d2-3776327244 .color-AB4{color:#EDF0FD;}
+ .d2-3776327244 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>a b c
\ No newline at end of file
diff --git a/e2etests/testdata/sanity/1_to_2/elk/board.exp.json b/e2etests/testdata/sanity/1_to_2/elk/board.exp.json
index c4eae9410..8c23c067b 100644
--- a/e2etests/testdata/sanity/1_to_2/elk/board.exp.json
+++ b/e2etests/testdata/sanity/1_to_2/elk/board.exp.json
@@ -153,11 +153,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 61.666666666666664,
+ "x": 61.66600036621094,
"y": 78
},
{
- "x": 61.666666666666664,
+ "x": 61.66600036621094,
"y": 118
},
{
@@ -199,11 +199,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 88.33333333333333,
+ "x": 88.33300018310547,
"y": 78
},
{
- "x": 88.33333333333333,
+ "x": 88.33300018310547,
"y": 118
},
{
diff --git a/e2etests/testdata/sanity/1_to_2/elk/sketch.exp.svg b/e2etests/testdata/sanity/1_to_2/elk/sketch.exp.svg
index a23ae2e52..73e9130d7 100644
--- a/e2etests/testdata/sanity/1_to_2/elk/sketch.exp.svg
+++ b/e2etests/testdata/sanity/1_to_2/elk/sketch.exp.svg
@@ -1,10 +1,10 @@
-a b c
+ .d2-685014647 .fill-N1{fill:#0A0F25;}
+ .d2-685014647 .fill-N2{fill:#676C7E;}
+ .d2-685014647 .fill-N3{fill:#9499AB;}
+ .d2-685014647 .fill-N4{fill:#CFD2DD;}
+ .d2-685014647 .fill-N5{fill:#DEE1EB;}
+ .d2-685014647 .fill-N6{fill:#EEF1F8;}
+ .d2-685014647 .fill-N7{fill:#FFFFFF;}
+ .d2-685014647 .fill-B1{fill:#0D32B2;}
+ .d2-685014647 .fill-B2{fill:#0D32B2;}
+ .d2-685014647 .fill-B3{fill:#E3E9FD;}
+ .d2-685014647 .fill-B4{fill:#E3E9FD;}
+ .d2-685014647 .fill-B5{fill:#EDF0FD;}
+ .d2-685014647 .fill-B6{fill:#F7F8FE;}
+ .d2-685014647 .fill-AA2{fill:#4A6FF3;}
+ .d2-685014647 .fill-AA4{fill:#EDF0FD;}
+ .d2-685014647 .fill-AA5{fill:#F7F8FE;}
+ .d2-685014647 .fill-AB4{fill:#EDF0FD;}
+ .d2-685014647 .fill-AB5{fill:#F7F8FE;}
+ .d2-685014647 .stroke-N1{stroke:#0A0F25;}
+ .d2-685014647 .stroke-N2{stroke:#676C7E;}
+ .d2-685014647 .stroke-N3{stroke:#9499AB;}
+ .d2-685014647 .stroke-N4{stroke:#CFD2DD;}
+ .d2-685014647 .stroke-N5{stroke:#DEE1EB;}
+ .d2-685014647 .stroke-N6{stroke:#EEF1F8;}
+ .d2-685014647 .stroke-N7{stroke:#FFFFFF;}
+ .d2-685014647 .stroke-B1{stroke:#0D32B2;}
+ .d2-685014647 .stroke-B2{stroke:#0D32B2;}
+ .d2-685014647 .stroke-B3{stroke:#E3E9FD;}
+ .d2-685014647 .stroke-B4{stroke:#E3E9FD;}
+ .d2-685014647 .stroke-B5{stroke:#EDF0FD;}
+ .d2-685014647 .stroke-B6{stroke:#F7F8FE;}
+ .d2-685014647 .stroke-AA2{stroke:#4A6FF3;}
+ .d2-685014647 .stroke-AA4{stroke:#EDF0FD;}
+ .d2-685014647 .stroke-AA5{stroke:#F7F8FE;}
+ .d2-685014647 .stroke-AB4{stroke:#EDF0FD;}
+ .d2-685014647 .stroke-AB5{stroke:#F7F8FE;}
+ .d2-685014647 .background-color-N1{background-color:#0A0F25;}
+ .d2-685014647 .background-color-N2{background-color:#676C7E;}
+ .d2-685014647 .background-color-N3{background-color:#9499AB;}
+ .d2-685014647 .background-color-N4{background-color:#CFD2DD;}
+ .d2-685014647 .background-color-N5{background-color:#DEE1EB;}
+ .d2-685014647 .background-color-N6{background-color:#EEF1F8;}
+ .d2-685014647 .background-color-N7{background-color:#FFFFFF;}
+ .d2-685014647 .background-color-B1{background-color:#0D32B2;}
+ .d2-685014647 .background-color-B2{background-color:#0D32B2;}
+ .d2-685014647 .background-color-B3{background-color:#E3E9FD;}
+ .d2-685014647 .background-color-B4{background-color:#E3E9FD;}
+ .d2-685014647 .background-color-B5{background-color:#EDF0FD;}
+ .d2-685014647 .background-color-B6{background-color:#F7F8FE;}
+ .d2-685014647 .background-color-AA2{background-color:#4A6FF3;}
+ .d2-685014647 .background-color-AA4{background-color:#EDF0FD;}
+ .d2-685014647 .background-color-AA5{background-color:#F7F8FE;}
+ .d2-685014647 .background-color-AB4{background-color:#EDF0FD;}
+ .d2-685014647 .background-color-AB5{background-color:#F7F8FE;}
+ .d2-685014647 .color-N1{color:#0A0F25;}
+ .d2-685014647 .color-N2{color:#676C7E;}
+ .d2-685014647 .color-N3{color:#9499AB;}
+ .d2-685014647 .color-N4{color:#CFD2DD;}
+ .d2-685014647 .color-N5{color:#DEE1EB;}
+ .d2-685014647 .color-N6{color:#EEF1F8;}
+ .d2-685014647 .color-N7{color:#FFFFFF;}
+ .d2-685014647 .color-B1{color:#0D32B2;}
+ .d2-685014647 .color-B2{color:#0D32B2;}
+ .d2-685014647 .color-B3{color:#E3E9FD;}
+ .d2-685014647 .color-B4{color:#E3E9FD;}
+ .d2-685014647 .color-B5{color:#EDF0FD;}
+ .d2-685014647 .color-B6{color:#F7F8FE;}
+ .d2-685014647 .color-AA2{color:#4A6FF3;}
+ .d2-685014647 .color-AA4{color:#EDF0FD;}
+ .d2-685014647 .color-AA5{color:#F7F8FE;}
+ .d2-685014647 .color-AB4{color:#EDF0FD;}
+ .d2-685014647 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>a b c
\ No newline at end of file
diff --git a/e2etests/testdata/sanity/basic/dagre/sketch.exp.svg b/e2etests/testdata/sanity/basic/dagre/sketch.exp.svg
index 1168c320b..ad436fdfa 100644
--- a/e2etests/testdata/sanity/basic/dagre/sketch.exp.svg
+++ b/e2etests/testdata/sanity/basic/dagre/sketch.exp.svg
@@ -1,10 +1,10 @@
-a c b d
+ .d2-1330591570 .fill-N1{fill:#0A0F25;}
+ .d2-1330591570 .fill-N2{fill:#676C7E;}
+ .d2-1330591570 .fill-N3{fill:#9499AB;}
+ .d2-1330591570 .fill-N4{fill:#CFD2DD;}
+ .d2-1330591570 .fill-N5{fill:#DEE1EB;}
+ .d2-1330591570 .fill-N6{fill:#EEF1F8;}
+ .d2-1330591570 .fill-N7{fill:#FFFFFF;}
+ .d2-1330591570 .fill-B1{fill:#0D32B2;}
+ .d2-1330591570 .fill-B2{fill:#0D32B2;}
+ .d2-1330591570 .fill-B3{fill:#E3E9FD;}
+ .d2-1330591570 .fill-B4{fill:#E3E9FD;}
+ .d2-1330591570 .fill-B5{fill:#EDF0FD;}
+ .d2-1330591570 .fill-B6{fill:#F7F8FE;}
+ .d2-1330591570 .fill-AA2{fill:#4A6FF3;}
+ .d2-1330591570 .fill-AA4{fill:#EDF0FD;}
+ .d2-1330591570 .fill-AA5{fill:#F7F8FE;}
+ .d2-1330591570 .fill-AB4{fill:#EDF0FD;}
+ .d2-1330591570 .fill-AB5{fill:#F7F8FE;}
+ .d2-1330591570 .stroke-N1{stroke:#0A0F25;}
+ .d2-1330591570 .stroke-N2{stroke:#676C7E;}
+ .d2-1330591570 .stroke-N3{stroke:#9499AB;}
+ .d2-1330591570 .stroke-N4{stroke:#CFD2DD;}
+ .d2-1330591570 .stroke-N5{stroke:#DEE1EB;}
+ .d2-1330591570 .stroke-N6{stroke:#EEF1F8;}
+ .d2-1330591570 .stroke-N7{stroke:#FFFFFF;}
+ .d2-1330591570 .stroke-B1{stroke:#0D32B2;}
+ .d2-1330591570 .stroke-B2{stroke:#0D32B2;}
+ .d2-1330591570 .stroke-B3{stroke:#E3E9FD;}
+ .d2-1330591570 .stroke-B4{stroke:#E3E9FD;}
+ .d2-1330591570 .stroke-B5{stroke:#EDF0FD;}
+ .d2-1330591570 .stroke-B6{stroke:#F7F8FE;}
+ .d2-1330591570 .stroke-AA2{stroke:#4A6FF3;}
+ .d2-1330591570 .stroke-AA4{stroke:#EDF0FD;}
+ .d2-1330591570 .stroke-AA5{stroke:#F7F8FE;}
+ .d2-1330591570 .stroke-AB4{stroke:#EDF0FD;}
+ .d2-1330591570 .stroke-AB5{stroke:#F7F8FE;}
+ .d2-1330591570 .background-color-N1{background-color:#0A0F25;}
+ .d2-1330591570 .background-color-N2{background-color:#676C7E;}
+ .d2-1330591570 .background-color-N3{background-color:#9499AB;}
+ .d2-1330591570 .background-color-N4{background-color:#CFD2DD;}
+ .d2-1330591570 .background-color-N5{background-color:#DEE1EB;}
+ .d2-1330591570 .background-color-N6{background-color:#EEF1F8;}
+ .d2-1330591570 .background-color-N7{background-color:#FFFFFF;}
+ .d2-1330591570 .background-color-B1{background-color:#0D32B2;}
+ .d2-1330591570 .background-color-B2{background-color:#0D32B2;}
+ .d2-1330591570 .background-color-B3{background-color:#E3E9FD;}
+ .d2-1330591570 .background-color-B4{background-color:#E3E9FD;}
+ .d2-1330591570 .background-color-B5{background-color:#EDF0FD;}
+ .d2-1330591570 .background-color-B6{background-color:#F7F8FE;}
+ .d2-1330591570 .background-color-AA2{background-color:#4A6FF3;}
+ .d2-1330591570 .background-color-AA4{background-color:#EDF0FD;}
+ .d2-1330591570 .background-color-AA5{background-color:#F7F8FE;}
+ .d2-1330591570 .background-color-AB4{background-color:#EDF0FD;}
+ .d2-1330591570 .background-color-AB5{background-color:#F7F8FE;}
+ .d2-1330591570 .color-N1{color:#0A0F25;}
+ .d2-1330591570 .color-N2{color:#676C7E;}
+ .d2-1330591570 .color-N3{color:#9499AB;}
+ .d2-1330591570 .color-N4{color:#CFD2DD;}
+ .d2-1330591570 .color-N5{color:#DEE1EB;}
+ .d2-1330591570 .color-N6{color:#EEF1F8;}
+ .d2-1330591570 .color-N7{color:#FFFFFF;}
+ .d2-1330591570 .color-B1{color:#0D32B2;}
+ .d2-1330591570 .color-B2{color:#0D32B2;}
+ .d2-1330591570 .color-B3{color:#E3E9FD;}
+ .d2-1330591570 .color-B4{color:#E3E9FD;}
+ .d2-1330591570 .color-B5{color:#EDF0FD;}
+ .d2-1330591570 .color-B6{color:#F7F8FE;}
+ .d2-1330591570 .color-AA2{color:#4A6FF3;}
+ .d2-1330591570 .color-AA4{color:#EDF0FD;}
+ .d2-1330591570 .color-AA5{color:#F7F8FE;}
+ .d2-1330591570 .color-AB4{color:#EDF0FD;}
+ .d2-1330591570 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>a c b d
\ No newline at end of file
diff --git a/e2etests/testdata/sanity/child_to_child/elk/sketch.exp.svg b/e2etests/testdata/sanity/child_to_child/elk/sketch.exp.svg
index 1b1322897..a446f5108 100644
--- a/e2etests/testdata/sanity/child_to_child/elk/sketch.exp.svg
+++ b/e2etests/testdata/sanity/child_to_child/elk/sketch.exp.svg
@@ -1,17 +1,17 @@
-a b hello
+ .d2-778417657 .fill-N1{fill:#0A0F25;}
+ .d2-778417657 .fill-N2{fill:#676C7E;}
+ .d2-778417657 .fill-N3{fill:#9499AB;}
+ .d2-778417657 .fill-N4{fill:#CFD2DD;}
+ .d2-778417657 .fill-N5{fill:#DEE1EB;}
+ .d2-778417657 .fill-N6{fill:#EEF1F8;}
+ .d2-778417657 .fill-N7{fill:#FFFFFF;}
+ .d2-778417657 .fill-B1{fill:#0D32B2;}
+ .d2-778417657 .fill-B2{fill:#0D32B2;}
+ .d2-778417657 .fill-B3{fill:#E3E9FD;}
+ .d2-778417657 .fill-B4{fill:#E3E9FD;}
+ .d2-778417657 .fill-B5{fill:#EDF0FD;}
+ .d2-778417657 .fill-B6{fill:#F7F8FE;}
+ .d2-778417657 .fill-AA2{fill:#4A6FF3;}
+ .d2-778417657 .fill-AA4{fill:#EDF0FD;}
+ .d2-778417657 .fill-AA5{fill:#F7F8FE;}
+ .d2-778417657 .fill-AB4{fill:#EDF0FD;}
+ .d2-778417657 .fill-AB5{fill:#F7F8FE;}
+ .d2-778417657 .stroke-N1{stroke:#0A0F25;}
+ .d2-778417657 .stroke-N2{stroke:#676C7E;}
+ .d2-778417657 .stroke-N3{stroke:#9499AB;}
+ .d2-778417657 .stroke-N4{stroke:#CFD2DD;}
+ .d2-778417657 .stroke-N5{stroke:#DEE1EB;}
+ .d2-778417657 .stroke-N6{stroke:#EEF1F8;}
+ .d2-778417657 .stroke-N7{stroke:#FFFFFF;}
+ .d2-778417657 .stroke-B1{stroke:#0D32B2;}
+ .d2-778417657 .stroke-B2{stroke:#0D32B2;}
+ .d2-778417657 .stroke-B3{stroke:#E3E9FD;}
+ .d2-778417657 .stroke-B4{stroke:#E3E9FD;}
+ .d2-778417657 .stroke-B5{stroke:#EDF0FD;}
+ .d2-778417657 .stroke-B6{stroke:#F7F8FE;}
+ .d2-778417657 .stroke-AA2{stroke:#4A6FF3;}
+ .d2-778417657 .stroke-AA4{stroke:#EDF0FD;}
+ .d2-778417657 .stroke-AA5{stroke:#F7F8FE;}
+ .d2-778417657 .stroke-AB4{stroke:#EDF0FD;}
+ .d2-778417657 .stroke-AB5{stroke:#F7F8FE;}
+ .d2-778417657 .background-color-N1{background-color:#0A0F25;}
+ .d2-778417657 .background-color-N2{background-color:#676C7E;}
+ .d2-778417657 .background-color-N3{background-color:#9499AB;}
+ .d2-778417657 .background-color-N4{background-color:#CFD2DD;}
+ .d2-778417657 .background-color-N5{background-color:#DEE1EB;}
+ .d2-778417657 .background-color-N6{background-color:#EEF1F8;}
+ .d2-778417657 .background-color-N7{background-color:#FFFFFF;}
+ .d2-778417657 .background-color-B1{background-color:#0D32B2;}
+ .d2-778417657 .background-color-B2{background-color:#0D32B2;}
+ .d2-778417657 .background-color-B3{background-color:#E3E9FD;}
+ .d2-778417657 .background-color-B4{background-color:#E3E9FD;}
+ .d2-778417657 .background-color-B5{background-color:#EDF0FD;}
+ .d2-778417657 .background-color-B6{background-color:#F7F8FE;}
+ .d2-778417657 .background-color-AA2{background-color:#4A6FF3;}
+ .d2-778417657 .background-color-AA4{background-color:#EDF0FD;}
+ .d2-778417657 .background-color-AA5{background-color:#F7F8FE;}
+ .d2-778417657 .background-color-AB4{background-color:#EDF0FD;}
+ .d2-778417657 .background-color-AB5{background-color:#F7F8FE;}
+ .d2-778417657 .color-N1{color:#0A0F25;}
+ .d2-778417657 .color-N2{color:#676C7E;}
+ .d2-778417657 .color-N3{color:#9499AB;}
+ .d2-778417657 .color-N4{color:#CFD2DD;}
+ .d2-778417657 .color-N5{color:#DEE1EB;}
+ .d2-778417657 .color-N6{color:#EEF1F8;}
+ .d2-778417657 .color-N7{color:#FFFFFF;}
+ .d2-778417657 .color-B1{color:#0D32B2;}
+ .d2-778417657 .color-B2{color:#0D32B2;}
+ .d2-778417657 .color-B3{color:#E3E9FD;}
+ .d2-778417657 .color-B4{color:#E3E9FD;}
+ .d2-778417657 .color-B5{color:#EDF0FD;}
+ .d2-778417657 .color-B6{color:#F7F8FE;}
+ .d2-778417657 .color-AA2{color:#4A6FF3;}
+ .d2-778417657 .color-AA4{color:#EDF0FD;}
+ .d2-778417657 .color-AA5{color:#F7F8FE;}
+ .d2-778417657 .color-AB4{color:#EDF0FD;}
+ .d2-778417657 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>a b hello
\ No newline at end of file
diff --git a/e2etests/testdata/sanity/connection_label/elk/sketch.exp.svg b/e2etests/testdata/sanity/connection_label/elk/sketch.exp.svg
index dfccd7820..807fbe480 100644
--- a/e2etests/testdata/sanity/connection_label/elk/sketch.exp.svg
+++ b/e2etests/testdata/sanity/connection_label/elk/sketch.exp.svg
@@ -1,17 +1,17 @@
-
-
- hexagon
-
- rect
-
- square
-
+ .d2-4162510810 .fill-N1{fill:#0A0F25;}
+ .d2-4162510810 .fill-N2{fill:#676C7E;}
+ .d2-4162510810 .fill-N3{fill:#9499AB;}
+ .d2-4162510810 .fill-N4{fill:#CFD2DD;}
+ .d2-4162510810 .fill-N5{fill:#DEE1EB;}
+ .d2-4162510810 .fill-N6{fill:#EEF1F8;}
+ .d2-4162510810 .fill-N7{fill:#FFFFFF;}
+ .d2-4162510810 .fill-B1{fill:#0D32B2;}
+ .d2-4162510810 .fill-B2{fill:#0D32B2;}
+ .d2-4162510810 .fill-B3{fill:#E3E9FD;}
+ .d2-4162510810 .fill-B4{fill:#E3E9FD;}
+ .d2-4162510810 .fill-B5{fill:#EDF0FD;}
+ .d2-4162510810 .fill-B6{fill:#F7F8FE;}
+ .d2-4162510810 .fill-AA2{fill:#4A6FF3;}
+ .d2-4162510810 .fill-AA4{fill:#EDF0FD;}
+ .d2-4162510810 .fill-AA5{fill:#F7F8FE;}
+ .d2-4162510810 .fill-AB4{fill:#EDF0FD;}
+ .d2-4162510810 .fill-AB5{fill:#F7F8FE;}
+ .d2-4162510810 .stroke-N1{stroke:#0A0F25;}
+ .d2-4162510810 .stroke-N2{stroke:#676C7E;}
+ .d2-4162510810 .stroke-N3{stroke:#9499AB;}
+ .d2-4162510810 .stroke-N4{stroke:#CFD2DD;}
+ .d2-4162510810 .stroke-N5{stroke:#DEE1EB;}
+ .d2-4162510810 .stroke-N6{stroke:#EEF1F8;}
+ .d2-4162510810 .stroke-N7{stroke:#FFFFFF;}
+ .d2-4162510810 .stroke-B1{stroke:#0D32B2;}
+ .d2-4162510810 .stroke-B2{stroke:#0D32B2;}
+ .d2-4162510810 .stroke-B3{stroke:#E3E9FD;}
+ .d2-4162510810 .stroke-B4{stroke:#E3E9FD;}
+ .d2-4162510810 .stroke-B5{stroke:#EDF0FD;}
+ .d2-4162510810 .stroke-B6{stroke:#F7F8FE;}
+ .d2-4162510810 .stroke-AA2{stroke:#4A6FF3;}
+ .d2-4162510810 .stroke-AA4{stroke:#EDF0FD;}
+ .d2-4162510810 .stroke-AA5{stroke:#F7F8FE;}
+ .d2-4162510810 .stroke-AB4{stroke:#EDF0FD;}
+ .d2-4162510810 .stroke-AB5{stroke:#F7F8FE;}
+ .d2-4162510810 .background-color-N1{background-color:#0A0F25;}
+ .d2-4162510810 .background-color-N2{background-color:#676C7E;}
+ .d2-4162510810 .background-color-N3{background-color:#9499AB;}
+ .d2-4162510810 .background-color-N4{background-color:#CFD2DD;}
+ .d2-4162510810 .background-color-N5{background-color:#DEE1EB;}
+ .d2-4162510810 .background-color-N6{background-color:#EEF1F8;}
+ .d2-4162510810 .background-color-N7{background-color:#FFFFFF;}
+ .d2-4162510810 .background-color-B1{background-color:#0D32B2;}
+ .d2-4162510810 .background-color-B2{background-color:#0D32B2;}
+ .d2-4162510810 .background-color-B3{background-color:#E3E9FD;}
+ .d2-4162510810 .background-color-B4{background-color:#E3E9FD;}
+ .d2-4162510810 .background-color-B5{background-color:#EDF0FD;}
+ .d2-4162510810 .background-color-B6{background-color:#F7F8FE;}
+ .d2-4162510810 .background-color-AA2{background-color:#4A6FF3;}
+ .d2-4162510810 .background-color-AA4{background-color:#EDF0FD;}
+ .d2-4162510810 .background-color-AA5{background-color:#F7F8FE;}
+ .d2-4162510810 .background-color-AB4{background-color:#EDF0FD;}
+ .d2-4162510810 .background-color-AB5{background-color:#F7F8FE;}
+ .d2-4162510810 .color-N1{color:#0A0F25;}
+ .d2-4162510810 .color-N2{color:#676C7E;}
+ .d2-4162510810 .color-N3{color:#9499AB;}
+ .d2-4162510810 .color-N4{color:#CFD2DD;}
+ .d2-4162510810 .color-N5{color:#DEE1EB;}
+ .d2-4162510810 .color-N6{color:#EEF1F8;}
+ .d2-4162510810 .color-N7{color:#FFFFFF;}
+ .d2-4162510810 .color-B1{color:#0D32B2;}
+ .d2-4162510810 .color-B2{color:#0D32B2;}
+ .d2-4162510810 .color-B3{color:#E3E9FD;}
+ .d2-4162510810 .color-B4{color:#E3E9FD;}
+ .d2-4162510810 .color-B5{color:#EDF0FD;}
+ .d2-4162510810 .color-B6{color:#F7F8FE;}
+ .d2-4162510810 .color-AA2{color:#4A6FF3;}
+ .d2-4162510810 .color-AA4{color:#EDF0FD;}
+ .d2-4162510810 .color-AA5{color:#F7F8FE;}
+ .d2-4162510810 .color-AB4{color:#EDF0FD;}
+ .d2-4162510810 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>
+
+ hexagon
+
+ rect
+
+ square
+
\ No newline at end of file
diff --git a/e2etests/testdata/stable/3d_fill_and_stroke/elk/board.exp.json b/e2etests/testdata/stable/3d_fill_and_stroke/elk/board.exp.json
index 52c25f9b3..8705f3a7d 100644
--- a/e2etests/testdata/stable/3d_fill_and_stroke/elk/board.exp.json
+++ b/e2etests/testdata/stable/3d_fill_and_stroke/elk/board.exp.json
@@ -8,7 +8,7 @@
"type": "hexagon",
"pos": {
"x": 12,
- "y": 12
+ "y": 19
},
"width": 128,
"height": 69,
@@ -49,7 +49,7 @@
"type": "rectangle",
"pos": {
"x": 39,
- "y": 315
+ "y": 352
},
"width": 73,
"height": 66,
@@ -90,7 +90,7 @@
"type": "rectangle",
"pos": {
"x": 29,
- "y": 151
+ "y": 173
},
"width": 94,
"height": 94,
@@ -153,12 +153,12 @@
"labelPercentage": 0,
"route": [
{
- "x": 76,
- "y": 81
+ "x": 84,
+ "y": 88
},
{
- "x": 76,
- "y": 151
+ "x": 83.5,
+ "y": 158
}
],
"animated": false,
@@ -191,12 +191,12 @@
"labelPercentage": 0,
"route": [
{
- "x": 76,
- "y": 245
+ "x": 83.5,
+ "y": 267
},
{
- "x": 76,
- "y": 315
+ "x": 83.5,
+ "y": 337
}
],
"animated": false,
diff --git a/e2etests/testdata/stable/3d_fill_and_stroke/elk/sketch.exp.svg b/e2etests/testdata/stable/3d_fill_and_stroke/elk/sketch.exp.svg
index 72d99724f..5244bc3e0 100644
--- a/e2etests/testdata/stable/3d_fill_and_stroke/elk/sketch.exp.svg
+++ b/e2etests/testdata/stable/3d_fill_and_stroke/elk/sketch.exp.svg
@@ -1,10 +1,10 @@
-
-
- hexagon
-
- rect
-
- square
-
+ .d2-3697810359 .fill-N1{fill:#0A0F25;}
+ .d2-3697810359 .fill-N2{fill:#676C7E;}
+ .d2-3697810359 .fill-N3{fill:#9499AB;}
+ .d2-3697810359 .fill-N4{fill:#CFD2DD;}
+ .d2-3697810359 .fill-N5{fill:#DEE1EB;}
+ .d2-3697810359 .fill-N6{fill:#EEF1F8;}
+ .d2-3697810359 .fill-N7{fill:#FFFFFF;}
+ .d2-3697810359 .fill-B1{fill:#0D32B2;}
+ .d2-3697810359 .fill-B2{fill:#0D32B2;}
+ .d2-3697810359 .fill-B3{fill:#E3E9FD;}
+ .d2-3697810359 .fill-B4{fill:#E3E9FD;}
+ .d2-3697810359 .fill-B5{fill:#EDF0FD;}
+ .d2-3697810359 .fill-B6{fill:#F7F8FE;}
+ .d2-3697810359 .fill-AA2{fill:#4A6FF3;}
+ .d2-3697810359 .fill-AA4{fill:#EDF0FD;}
+ .d2-3697810359 .fill-AA5{fill:#F7F8FE;}
+ .d2-3697810359 .fill-AB4{fill:#EDF0FD;}
+ .d2-3697810359 .fill-AB5{fill:#F7F8FE;}
+ .d2-3697810359 .stroke-N1{stroke:#0A0F25;}
+ .d2-3697810359 .stroke-N2{stroke:#676C7E;}
+ .d2-3697810359 .stroke-N3{stroke:#9499AB;}
+ .d2-3697810359 .stroke-N4{stroke:#CFD2DD;}
+ .d2-3697810359 .stroke-N5{stroke:#DEE1EB;}
+ .d2-3697810359 .stroke-N6{stroke:#EEF1F8;}
+ .d2-3697810359 .stroke-N7{stroke:#FFFFFF;}
+ .d2-3697810359 .stroke-B1{stroke:#0D32B2;}
+ .d2-3697810359 .stroke-B2{stroke:#0D32B2;}
+ .d2-3697810359 .stroke-B3{stroke:#E3E9FD;}
+ .d2-3697810359 .stroke-B4{stroke:#E3E9FD;}
+ .d2-3697810359 .stroke-B5{stroke:#EDF0FD;}
+ .d2-3697810359 .stroke-B6{stroke:#F7F8FE;}
+ .d2-3697810359 .stroke-AA2{stroke:#4A6FF3;}
+ .d2-3697810359 .stroke-AA4{stroke:#EDF0FD;}
+ .d2-3697810359 .stroke-AA5{stroke:#F7F8FE;}
+ .d2-3697810359 .stroke-AB4{stroke:#EDF0FD;}
+ .d2-3697810359 .stroke-AB5{stroke:#F7F8FE;}
+ .d2-3697810359 .background-color-N1{background-color:#0A0F25;}
+ .d2-3697810359 .background-color-N2{background-color:#676C7E;}
+ .d2-3697810359 .background-color-N3{background-color:#9499AB;}
+ .d2-3697810359 .background-color-N4{background-color:#CFD2DD;}
+ .d2-3697810359 .background-color-N5{background-color:#DEE1EB;}
+ .d2-3697810359 .background-color-N6{background-color:#EEF1F8;}
+ .d2-3697810359 .background-color-N7{background-color:#FFFFFF;}
+ .d2-3697810359 .background-color-B1{background-color:#0D32B2;}
+ .d2-3697810359 .background-color-B2{background-color:#0D32B2;}
+ .d2-3697810359 .background-color-B3{background-color:#E3E9FD;}
+ .d2-3697810359 .background-color-B4{background-color:#E3E9FD;}
+ .d2-3697810359 .background-color-B5{background-color:#EDF0FD;}
+ .d2-3697810359 .background-color-B6{background-color:#F7F8FE;}
+ .d2-3697810359 .background-color-AA2{background-color:#4A6FF3;}
+ .d2-3697810359 .background-color-AA4{background-color:#EDF0FD;}
+ .d2-3697810359 .background-color-AA5{background-color:#F7F8FE;}
+ .d2-3697810359 .background-color-AB4{background-color:#EDF0FD;}
+ .d2-3697810359 .background-color-AB5{background-color:#F7F8FE;}
+ .d2-3697810359 .color-N1{color:#0A0F25;}
+ .d2-3697810359 .color-N2{color:#676C7E;}
+ .d2-3697810359 .color-N3{color:#9499AB;}
+ .d2-3697810359 .color-N4{color:#CFD2DD;}
+ .d2-3697810359 .color-N5{color:#DEE1EB;}
+ .d2-3697810359 .color-N6{color:#EEF1F8;}
+ .d2-3697810359 .color-N7{color:#FFFFFF;}
+ .d2-3697810359 .color-B1{color:#0D32B2;}
+ .d2-3697810359 .color-B2{color:#0D32B2;}
+ .d2-3697810359 .color-B3{color:#E3E9FD;}
+ .d2-3697810359 .color-B4{color:#E3E9FD;}
+ .d2-3697810359 .color-B5{color:#EDF0FD;}
+ .d2-3697810359 .color-B6{color:#F7F8FE;}
+ .d2-3697810359 .color-AA2{color:#4A6FF3;}
+ .d2-3697810359 .color-AA4{color:#EDF0FD;}
+ .d2-3697810359 .color-AA5{color:#F7F8FE;}
+ .d2-3697810359 .color-AB4{color:#EDF0FD;}
+ .d2-3697810359 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>
+
+ hexagon
+
+ rect
+
+ square
+
\ No newline at end of file
diff --git a/e2etests/testdata/stable/all_shapes/dagre/board.exp.json b/e2etests/testdata/stable/all_shapes/dagre/board.exp.json
index 9ebbf9a61..8823bccf8 100644
--- a/e2etests/testdata/stable/all_shapes/dagre/board.exp.json
+++ b/e2etests/testdata/stable/all_shapes/dagre/board.exp.json
@@ -732,7 +732,7 @@
},
{
"x": 55.5,
- "y": 129.4
+ "y": 129.39999389648438
},
{
"x": 55.5,
@@ -782,8 +782,8 @@
"y": 326
},
{
- "x": 55.6,
- "y": 349.2
+ "x": 55.599998474121094,
+ "y": 349.20001220703125
},
{
"x": 56,
@@ -826,11 +826,11 @@
},
{
"x": 269,
- "y": 129.4
+ "y": 129.39999389648438
},
{
"x": 269,
- "y": 153.8
+ "y": 153.8000030517578
},
{
"x": 269,
@@ -873,7 +873,7 @@
},
{
"x": 269,
- "y": 322.2
+ "y": 322.20001220703125
},
{
"x": 269,
@@ -919,12 +919,12 @@
"y": 79
},
{
- "x": 497.4,
- "y": 129.4
+ "x": 497.3999938964844,
+ "y": 129.39999389648438
},
{
- "x": 497.6,
- "y": 154.2
+ "x": 497.6000061035156,
+ "y": 154.1999969482422
},
{
"x": 498,
@@ -966,12 +966,12 @@
"y": 276
},
{
- "x": 497.4,
+ "x": 497.3999938964844,
"y": 324
},
{
- "x": 497.6,
- "y": 347.8
+ "x": 497.6000061035156,
+ "y": 347.79998779296875
},
{
"x": 498,
@@ -1013,12 +1013,12 @@
"y": 47
},
{
- "x": 684.6,
+ "x": 684.5999755859375,
"y": 123
},
{
- "x": 684.6,
- "y": 154.8
+ "x": 684.5999755859375,
+ "y": 154.8000030517578
},
{
"x": 685,
@@ -1060,12 +1060,12 @@
"y": 272
},
{
- "x": 684.4,
- "y": 323.2
+ "x": 684.4000244140625,
+ "y": 323.20001220703125
},
{
- "x": 684.6,
- "y": 348.6
+ "x": 684.5999755859375,
+ "y": 348.6000061035156
},
{
"x": 685,
@@ -1112,7 +1112,7 @@
},
{
"x": 870,
- "y": 154.4
+ "y": 154.39999389648438
},
{
"x": 870,
@@ -1155,11 +1155,11 @@
},
{
"x": 870,
- "y": 323.6
+ "y": 323.6000061035156
},
{
"x": 870,
- "y": 348.8
+ "y": 348.79998779296875
},
{
"x": 870,
@@ -1202,11 +1202,11 @@
},
{
"x": 1072,
- "y": 129.8
+ "y": 129.8000030517578
},
{
"x": 1072,
- "y": 153.2
+ "y": 153.1999969482422
},
{
"x": 1072,
diff --git a/e2etests/testdata/stable/all_shapes/dagre/sketch.exp.svg b/e2etests/testdata/stable/all_shapes/dagre/sketch.exp.svg
index cf56fc9d4..fd8ab35f6 100644
--- a/e2etests/testdata/stable/all_shapes/dagre/sketch.exp.svg
+++ b/e2etests/testdata/stable/all_shapes/dagre/sketch.exp.svg
@@ -1,10 +1,10 @@
-rectangle square page parallelogram document cylinder queue package step callout stored_data person diamond oval circle hexagon cloud
+ .d2-2360426079 .fill-N1{fill:#0A0F25;}
+ .d2-2360426079 .fill-N2{fill:#676C7E;}
+ .d2-2360426079 .fill-N3{fill:#9499AB;}
+ .d2-2360426079 .fill-N4{fill:#CFD2DD;}
+ .d2-2360426079 .fill-N5{fill:#DEE1EB;}
+ .d2-2360426079 .fill-N6{fill:#EEF1F8;}
+ .d2-2360426079 .fill-N7{fill:#FFFFFF;}
+ .d2-2360426079 .fill-B1{fill:#0D32B2;}
+ .d2-2360426079 .fill-B2{fill:#0D32B2;}
+ .d2-2360426079 .fill-B3{fill:#E3E9FD;}
+ .d2-2360426079 .fill-B4{fill:#E3E9FD;}
+ .d2-2360426079 .fill-B5{fill:#EDF0FD;}
+ .d2-2360426079 .fill-B6{fill:#F7F8FE;}
+ .d2-2360426079 .fill-AA2{fill:#4A6FF3;}
+ .d2-2360426079 .fill-AA4{fill:#EDF0FD;}
+ .d2-2360426079 .fill-AA5{fill:#F7F8FE;}
+ .d2-2360426079 .fill-AB4{fill:#EDF0FD;}
+ .d2-2360426079 .fill-AB5{fill:#F7F8FE;}
+ .d2-2360426079 .stroke-N1{stroke:#0A0F25;}
+ .d2-2360426079 .stroke-N2{stroke:#676C7E;}
+ .d2-2360426079 .stroke-N3{stroke:#9499AB;}
+ .d2-2360426079 .stroke-N4{stroke:#CFD2DD;}
+ .d2-2360426079 .stroke-N5{stroke:#DEE1EB;}
+ .d2-2360426079 .stroke-N6{stroke:#EEF1F8;}
+ .d2-2360426079 .stroke-N7{stroke:#FFFFFF;}
+ .d2-2360426079 .stroke-B1{stroke:#0D32B2;}
+ .d2-2360426079 .stroke-B2{stroke:#0D32B2;}
+ .d2-2360426079 .stroke-B3{stroke:#E3E9FD;}
+ .d2-2360426079 .stroke-B4{stroke:#E3E9FD;}
+ .d2-2360426079 .stroke-B5{stroke:#EDF0FD;}
+ .d2-2360426079 .stroke-B6{stroke:#F7F8FE;}
+ .d2-2360426079 .stroke-AA2{stroke:#4A6FF3;}
+ .d2-2360426079 .stroke-AA4{stroke:#EDF0FD;}
+ .d2-2360426079 .stroke-AA5{stroke:#F7F8FE;}
+ .d2-2360426079 .stroke-AB4{stroke:#EDF0FD;}
+ .d2-2360426079 .stroke-AB5{stroke:#F7F8FE;}
+ .d2-2360426079 .background-color-N1{background-color:#0A0F25;}
+ .d2-2360426079 .background-color-N2{background-color:#676C7E;}
+ .d2-2360426079 .background-color-N3{background-color:#9499AB;}
+ .d2-2360426079 .background-color-N4{background-color:#CFD2DD;}
+ .d2-2360426079 .background-color-N5{background-color:#DEE1EB;}
+ .d2-2360426079 .background-color-N6{background-color:#EEF1F8;}
+ .d2-2360426079 .background-color-N7{background-color:#FFFFFF;}
+ .d2-2360426079 .background-color-B1{background-color:#0D32B2;}
+ .d2-2360426079 .background-color-B2{background-color:#0D32B2;}
+ .d2-2360426079 .background-color-B3{background-color:#E3E9FD;}
+ .d2-2360426079 .background-color-B4{background-color:#E3E9FD;}
+ .d2-2360426079 .background-color-B5{background-color:#EDF0FD;}
+ .d2-2360426079 .background-color-B6{background-color:#F7F8FE;}
+ .d2-2360426079 .background-color-AA2{background-color:#4A6FF3;}
+ .d2-2360426079 .background-color-AA4{background-color:#EDF0FD;}
+ .d2-2360426079 .background-color-AA5{background-color:#F7F8FE;}
+ .d2-2360426079 .background-color-AB4{background-color:#EDF0FD;}
+ .d2-2360426079 .background-color-AB5{background-color:#F7F8FE;}
+ .d2-2360426079 .color-N1{color:#0A0F25;}
+ .d2-2360426079 .color-N2{color:#676C7E;}
+ .d2-2360426079 .color-N3{color:#9499AB;}
+ .d2-2360426079 .color-N4{color:#CFD2DD;}
+ .d2-2360426079 .color-N5{color:#DEE1EB;}
+ .d2-2360426079 .color-N6{color:#EEF1F8;}
+ .d2-2360426079 .color-N7{color:#FFFFFF;}
+ .d2-2360426079 .color-B1{color:#0D32B2;}
+ .d2-2360426079 .color-B2{color:#0D32B2;}
+ .d2-2360426079 .color-B3{color:#E3E9FD;}
+ .d2-2360426079 .color-B4{color:#E3E9FD;}
+ .d2-2360426079 .color-B5{color:#EDF0FD;}
+ .d2-2360426079 .color-B6{color:#F7F8FE;}
+ .d2-2360426079 .color-AA2{color:#4A6FF3;}
+ .d2-2360426079 .color-AA4{color:#EDF0FD;}
+ .d2-2360426079 .color-AA5{color:#F7F8FE;}
+ .d2-2360426079 .color-AB4{color:#EDF0FD;}
+ .d2-2360426079 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>rectangle square page parallelogram document cylinder queue package step callout stored_data person diamond oval circle hexagon cloud
\ No newline at end of file
diff --git a/e2etests/testdata/stable/all_shapes/elk/sketch.exp.svg b/e2etests/testdata/stable/all_shapes/elk/sketch.exp.svg
index ac3c002fe..14664c71e 100644
--- a/e2etests/testdata/stable/all_shapes/elk/sketch.exp.svg
+++ b/e2etests/testdata/stable/all_shapes/elk/sketch.exp.svg
@@ -1,10 +1,10 @@
-rectangle square page parallelogram document cylinder queue package step callout stored_data person diamond oval circle hexagon cloud
-
+ .d2-1535485115 .fill-N1{fill:#0A0F25;}
+ .d2-1535485115 .fill-N2{fill:#676C7E;}
+ .d2-1535485115 .fill-N3{fill:#9499AB;}
+ .d2-1535485115 .fill-N4{fill:#CFD2DD;}
+ .d2-1535485115 .fill-N5{fill:#DEE1EB;}
+ .d2-1535485115 .fill-N6{fill:#EEF1F8;}
+ .d2-1535485115 .fill-N7{fill:#FFFFFF;}
+ .d2-1535485115 .fill-B1{fill:#0D32B2;}
+ .d2-1535485115 .fill-B2{fill:#0D32B2;}
+ .d2-1535485115 .fill-B3{fill:#E3E9FD;}
+ .d2-1535485115 .fill-B4{fill:#E3E9FD;}
+ .d2-1535485115 .fill-B5{fill:#EDF0FD;}
+ .d2-1535485115 .fill-B6{fill:#F7F8FE;}
+ .d2-1535485115 .fill-AA2{fill:#4A6FF3;}
+ .d2-1535485115 .fill-AA4{fill:#EDF0FD;}
+ .d2-1535485115 .fill-AA5{fill:#F7F8FE;}
+ .d2-1535485115 .fill-AB4{fill:#EDF0FD;}
+ .d2-1535485115 .fill-AB5{fill:#F7F8FE;}
+ .d2-1535485115 .stroke-N1{stroke:#0A0F25;}
+ .d2-1535485115 .stroke-N2{stroke:#676C7E;}
+ .d2-1535485115 .stroke-N3{stroke:#9499AB;}
+ .d2-1535485115 .stroke-N4{stroke:#CFD2DD;}
+ .d2-1535485115 .stroke-N5{stroke:#DEE1EB;}
+ .d2-1535485115 .stroke-N6{stroke:#EEF1F8;}
+ .d2-1535485115 .stroke-N7{stroke:#FFFFFF;}
+ .d2-1535485115 .stroke-B1{stroke:#0D32B2;}
+ .d2-1535485115 .stroke-B2{stroke:#0D32B2;}
+ .d2-1535485115 .stroke-B3{stroke:#E3E9FD;}
+ .d2-1535485115 .stroke-B4{stroke:#E3E9FD;}
+ .d2-1535485115 .stroke-B5{stroke:#EDF0FD;}
+ .d2-1535485115 .stroke-B6{stroke:#F7F8FE;}
+ .d2-1535485115 .stroke-AA2{stroke:#4A6FF3;}
+ .d2-1535485115 .stroke-AA4{stroke:#EDF0FD;}
+ .d2-1535485115 .stroke-AA5{stroke:#F7F8FE;}
+ .d2-1535485115 .stroke-AB4{stroke:#EDF0FD;}
+ .d2-1535485115 .stroke-AB5{stroke:#F7F8FE;}
+ .d2-1535485115 .background-color-N1{background-color:#0A0F25;}
+ .d2-1535485115 .background-color-N2{background-color:#676C7E;}
+ .d2-1535485115 .background-color-N3{background-color:#9499AB;}
+ .d2-1535485115 .background-color-N4{background-color:#CFD2DD;}
+ .d2-1535485115 .background-color-N5{background-color:#DEE1EB;}
+ .d2-1535485115 .background-color-N6{background-color:#EEF1F8;}
+ .d2-1535485115 .background-color-N7{background-color:#FFFFFF;}
+ .d2-1535485115 .background-color-B1{background-color:#0D32B2;}
+ .d2-1535485115 .background-color-B2{background-color:#0D32B2;}
+ .d2-1535485115 .background-color-B3{background-color:#E3E9FD;}
+ .d2-1535485115 .background-color-B4{background-color:#E3E9FD;}
+ .d2-1535485115 .background-color-B5{background-color:#EDF0FD;}
+ .d2-1535485115 .background-color-B6{background-color:#F7F8FE;}
+ .d2-1535485115 .background-color-AA2{background-color:#4A6FF3;}
+ .d2-1535485115 .background-color-AA4{background-color:#EDF0FD;}
+ .d2-1535485115 .background-color-AA5{background-color:#F7F8FE;}
+ .d2-1535485115 .background-color-AB4{background-color:#EDF0FD;}
+ .d2-1535485115 .background-color-AB5{background-color:#F7F8FE;}
+ .d2-1535485115 .color-N1{color:#0A0F25;}
+ .d2-1535485115 .color-N2{color:#676C7E;}
+ .d2-1535485115 .color-N3{color:#9499AB;}
+ .d2-1535485115 .color-N4{color:#CFD2DD;}
+ .d2-1535485115 .color-N5{color:#DEE1EB;}
+ .d2-1535485115 .color-N6{color:#EEF1F8;}
+ .d2-1535485115 .color-N7{color:#FFFFFF;}
+ .d2-1535485115 .color-B1{color:#0D32B2;}
+ .d2-1535485115 .color-B2{color:#0D32B2;}
+ .d2-1535485115 .color-B3{color:#E3E9FD;}
+ .d2-1535485115 .color-B4{color:#E3E9FD;}
+ .d2-1535485115 .color-B5{color:#EDF0FD;}
+ .d2-1535485115 .color-B6{color:#F7F8FE;}
+ .d2-1535485115 .color-AA2{color:#4A6FF3;}
+ .d2-1535485115 .color-AA4{color:#EDF0FD;}
+ .d2-1535485115 .color-AA5{color:#F7F8FE;}
+ .d2-1535485115 .color-AB4{color:#EDF0FD;}
+ .d2-1535485115 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>rectangle square page parallelogram document cylinder queue package step callout stored_data person diamond oval circle hexagon cloud
+
\ No newline at end of file
diff --git a/e2etests/testdata/stable/all_shapes_multiple/elk/board.exp.json b/e2etests/testdata/stable/all_shapes_multiple/elk/board.exp.json
index 065e5e743..8d0479cff 100644
--- a/e2etests/testdata/stable/all_shapes_multiple/elk/board.exp.json
+++ b/e2etests/testdata/stable/all_shapes_multiple/elk/board.exp.json
@@ -8,7 +8,7 @@
"type": "rectangle",
"pos": {
"x": 12,
- "y": 38
+ "y": 48
},
"width": 111,
"height": 66,
@@ -49,7 +49,7 @@
"type": "rectangle",
"pos": {
"x": 20,
- "y": 174
+ "y": 194
},
"width": 94,
"height": 94,
@@ -90,7 +90,7 @@
"type": "page",
"pos": {
"x": 28,
- "y": 338
+ "y": 368
},
"width": 79,
"height": 87,
@@ -130,8 +130,8 @@
"id": "parallelogram",
"type": "parallelogram",
"pos": {
- "x": 143,
- "y": 38
+ "x": 153,
+ "y": 48
},
"width": 196,
"height": 66,
@@ -171,8 +171,8 @@
"id": "document",
"type": "document",
"pos": {
- "x": 182,
- "y": 183
+ "x": 192,
+ "y": 203
},
"width": 117,
"height": 76,
@@ -212,8 +212,8 @@
"id": "cylinder",
"type": "cylinder",
"pos": {
- "x": 189,
- "y": 338
+ "x": 199,
+ "y": 368
},
"width": 104,
"height": 118,
@@ -253,8 +253,8 @@
"id": "queue",
"type": "queue",
"pos": {
- "x": 359,
- "y": 38
+ "x": 379,
+ "y": 48
},
"width": 141,
"height": 66,
@@ -294,8 +294,8 @@
"id": "package",
"type": "package",
"pos": {
- "x": 378,
- "y": 184
+ "x": 398,
+ "y": 204
},
"width": 103,
"height": 73,
@@ -335,8 +335,8 @@
"id": "step",
"type": "step",
"pos": {
- "x": 371,
- "y": 338
+ "x": 391,
+ "y": 368
},
"width": 116,
"height": 101,
@@ -376,8 +376,8 @@
"id": "callout",
"type": "callout",
"pos": {
- "x": 529,
- "y": 13
+ "x": 559,
+ "y": 23
},
"width": 95,
"height": 91,
@@ -417,8 +417,8 @@
"id": "stored_data",
"type": "stored_data",
"pos": {
- "x": 501,
- "y": 188
+ "x": 531,
+ "y": 208
},
"width": 151,
"height": 66,
@@ -458,8 +458,8 @@
"id": "person",
"type": "person",
"pos": {
- "x": 545,
- "y": 338
+ "x": 575,
+ "y": 368
},
"width": 63,
"height": 66,
@@ -499,8 +499,8 @@
"id": "diamond",
"type": "diamond",
"pos": {
- "x": 644,
- "y": 12
+ "x": 684,
+ "y": 22
},
"width": 156,
"height": 92,
@@ -540,8 +540,8 @@
"id": "oval",
"type": "oval",
"pos": {
- "x": 673,
- "y": 186
+ "x": 713,
+ "y": 206
},
"width": 97,
"height": 70,
@@ -581,8 +581,8 @@
"id": "circle",
"type": "oval",
"pos": {
- "x": 676,
- "y": 338
+ "x": 716,
+ "y": 368
},
"width": 91,
"height": 91,
@@ -622,8 +622,8 @@
"id": "hexagon",
"type": "hexagon",
"pos": {
- "x": 820,
- "y": 35
+ "x": 870,
+ "y": 45
},
"width": 128,
"height": 69,
@@ -663,8 +663,8 @@
"id": "cloud",
"type": "cloud",
"pos": {
- "x": 832,
- "y": 174
+ "x": 882,
+ "y": 194
},
"width": 104,
"height": 84,
@@ -727,12 +727,12 @@
"labelPercentage": 0,
"route": [
{
- "x": 67.5,
- "y": 104
+ "x": 72.5,
+ "y": 114
},
{
- "x": 67.5,
- "y": 174
+ "x": 72.5,
+ "y": 184
}
],
"animated": false,
@@ -765,12 +765,12 @@
"labelPercentage": 0,
"route": [
{
- "x": 67.5,
- "y": 268
+ "x": 72.5,
+ "y": 288
},
{
- "x": 68,
- "y": 338
+ "x": 73,
+ "y": 358
}
],
"animated": false,
@@ -803,12 +803,12 @@
"labelPercentage": 0,
"route": [
{
- "x": 241,
- "y": 104
+ "x": 256,
+ "y": 114
},
{
- "x": 241,
- "y": 183
+ "x": 256,
+ "y": 193
}
],
"animated": false,
@@ -841,12 +841,12 @@
"labelPercentage": 0,
"route": [
{
- "x": 241,
- "y": 248
+ "x": 256,
+ "y": 265
},
{
- "x": 241,
- "y": 338
+ "x": 256,
+ "y": 358
}
],
"animated": false,
@@ -879,12 +879,12 @@
"labelPercentage": 0,
"route": [
{
- "x": 429,
- "y": 104
+ "x": 454,
+ "y": 114
},
{
- "x": 430,
- "y": 185
+ "x": 455,
+ "y": 195
}
],
"animated": false,
@@ -917,12 +917,12 @@
"labelPercentage": 0,
"route": [
{
- "x": 429,
- "y": 258
+ "x": 454,
+ "y": 278
},
{
- "x": 429,
- "y": 338
+ "x": 454,
+ "y": 358
}
],
"animated": false,
@@ -955,12 +955,12 @@
"labelPercentage": 0,
"route": [
{
- "x": 577,
- "y": 59
+ "x": 612,
+ "y": 107
},
{
- "x": 577,
- "y": 188
+ "x": 611,
+ "y": 198
}
],
"animated": false,
@@ -993,12 +993,12 @@
"labelPercentage": 0,
"route": [
{
- "x": 576,
- "y": 254
+ "x": 611,
+ "y": 274
},
{
- "x": 577,
- "y": 338
+ "x": 612,
+ "y": 358
}
],
"animated": false,
@@ -1031,12 +1031,12 @@
"labelPercentage": 0,
"route": [
{
- "x": 722,
- "y": 104
+ "x": 767,
+ "y": 112
},
{
- "x": 722,
- "y": 186
+ "x": 767,
+ "y": 196
}
],
"animated": false,
@@ -1069,12 +1069,12 @@
"labelPercentage": 0,
"route": [
{
- "x": 722,
- "y": 256
+ "x": 767,
+ "y": 276
},
{
- "x": 722,
- "y": 338
+ "x": 767,
+ "y": 358
}
],
"animated": false,
@@ -1107,12 +1107,12 @@
"labelPercentage": 0,
"route": [
{
- "x": 884,
- "y": 104
+ "x": 939,
+ "y": 114
},
{
- "x": 884,
- "y": 175
+ "x": 939,
+ "y": 188
}
],
"animated": false,
diff --git a/e2etests/testdata/stable/all_shapes_multiple/elk/sketch.exp.svg b/e2etests/testdata/stable/all_shapes_multiple/elk/sketch.exp.svg
index c017dfbad..47596f89f 100644
--- a/e2etests/testdata/stable/all_shapes_multiple/elk/sketch.exp.svg
+++ b/e2etests/testdata/stable/all_shapes_multiple/elk/sketch.exp.svg
@@ -1,10 +1,10 @@
-rectangle square page parallelogram document cylinder queue package step callout stored_data person diamond oval circle hexagon cloud
-
+ .d2-2596587540 .fill-N1{fill:#0A0F25;}
+ .d2-2596587540 .fill-N2{fill:#676C7E;}
+ .d2-2596587540 .fill-N3{fill:#9499AB;}
+ .d2-2596587540 .fill-N4{fill:#CFD2DD;}
+ .d2-2596587540 .fill-N5{fill:#DEE1EB;}
+ .d2-2596587540 .fill-N6{fill:#EEF1F8;}
+ .d2-2596587540 .fill-N7{fill:#FFFFFF;}
+ .d2-2596587540 .fill-B1{fill:#0D32B2;}
+ .d2-2596587540 .fill-B2{fill:#0D32B2;}
+ .d2-2596587540 .fill-B3{fill:#E3E9FD;}
+ .d2-2596587540 .fill-B4{fill:#E3E9FD;}
+ .d2-2596587540 .fill-B5{fill:#EDF0FD;}
+ .d2-2596587540 .fill-B6{fill:#F7F8FE;}
+ .d2-2596587540 .fill-AA2{fill:#4A6FF3;}
+ .d2-2596587540 .fill-AA4{fill:#EDF0FD;}
+ .d2-2596587540 .fill-AA5{fill:#F7F8FE;}
+ .d2-2596587540 .fill-AB4{fill:#EDF0FD;}
+ .d2-2596587540 .fill-AB5{fill:#F7F8FE;}
+ .d2-2596587540 .stroke-N1{stroke:#0A0F25;}
+ .d2-2596587540 .stroke-N2{stroke:#676C7E;}
+ .d2-2596587540 .stroke-N3{stroke:#9499AB;}
+ .d2-2596587540 .stroke-N4{stroke:#CFD2DD;}
+ .d2-2596587540 .stroke-N5{stroke:#DEE1EB;}
+ .d2-2596587540 .stroke-N6{stroke:#EEF1F8;}
+ .d2-2596587540 .stroke-N7{stroke:#FFFFFF;}
+ .d2-2596587540 .stroke-B1{stroke:#0D32B2;}
+ .d2-2596587540 .stroke-B2{stroke:#0D32B2;}
+ .d2-2596587540 .stroke-B3{stroke:#E3E9FD;}
+ .d2-2596587540 .stroke-B4{stroke:#E3E9FD;}
+ .d2-2596587540 .stroke-B5{stroke:#EDF0FD;}
+ .d2-2596587540 .stroke-B6{stroke:#F7F8FE;}
+ .d2-2596587540 .stroke-AA2{stroke:#4A6FF3;}
+ .d2-2596587540 .stroke-AA4{stroke:#EDF0FD;}
+ .d2-2596587540 .stroke-AA5{stroke:#F7F8FE;}
+ .d2-2596587540 .stroke-AB4{stroke:#EDF0FD;}
+ .d2-2596587540 .stroke-AB5{stroke:#F7F8FE;}
+ .d2-2596587540 .background-color-N1{background-color:#0A0F25;}
+ .d2-2596587540 .background-color-N2{background-color:#676C7E;}
+ .d2-2596587540 .background-color-N3{background-color:#9499AB;}
+ .d2-2596587540 .background-color-N4{background-color:#CFD2DD;}
+ .d2-2596587540 .background-color-N5{background-color:#DEE1EB;}
+ .d2-2596587540 .background-color-N6{background-color:#EEF1F8;}
+ .d2-2596587540 .background-color-N7{background-color:#FFFFFF;}
+ .d2-2596587540 .background-color-B1{background-color:#0D32B2;}
+ .d2-2596587540 .background-color-B2{background-color:#0D32B2;}
+ .d2-2596587540 .background-color-B3{background-color:#E3E9FD;}
+ .d2-2596587540 .background-color-B4{background-color:#E3E9FD;}
+ .d2-2596587540 .background-color-B5{background-color:#EDF0FD;}
+ .d2-2596587540 .background-color-B6{background-color:#F7F8FE;}
+ .d2-2596587540 .background-color-AA2{background-color:#4A6FF3;}
+ .d2-2596587540 .background-color-AA4{background-color:#EDF0FD;}
+ .d2-2596587540 .background-color-AA5{background-color:#F7F8FE;}
+ .d2-2596587540 .background-color-AB4{background-color:#EDF0FD;}
+ .d2-2596587540 .background-color-AB5{background-color:#F7F8FE;}
+ .d2-2596587540 .color-N1{color:#0A0F25;}
+ .d2-2596587540 .color-N2{color:#676C7E;}
+ .d2-2596587540 .color-N3{color:#9499AB;}
+ .d2-2596587540 .color-N4{color:#CFD2DD;}
+ .d2-2596587540 .color-N5{color:#DEE1EB;}
+ .d2-2596587540 .color-N6{color:#EEF1F8;}
+ .d2-2596587540 .color-N7{color:#FFFFFF;}
+ .d2-2596587540 .color-B1{color:#0D32B2;}
+ .d2-2596587540 .color-B2{color:#0D32B2;}
+ .d2-2596587540 .color-B3{color:#E3E9FD;}
+ .d2-2596587540 .color-B4{color:#E3E9FD;}
+ .d2-2596587540 .color-B5{color:#EDF0FD;}
+ .d2-2596587540 .color-B6{color:#F7F8FE;}
+ .d2-2596587540 .color-AA2{color:#4A6FF3;}
+ .d2-2596587540 .color-AA4{color:#EDF0FD;}
+ .d2-2596587540 .color-AA5{color:#F7F8FE;}
+ .d2-2596587540 .color-AB4{color:#EDF0FD;}
+ .d2-2596587540 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>rectangle square page parallelogram document cylinder queue package step callout stored_data person diamond oval circle hexagon cloud
+
\ No newline at end of file
diff --git a/e2etests/testdata/stable/all_shapes_shadow/dagre/board.exp.json b/e2etests/testdata/stable/all_shapes_shadow/dagre/board.exp.json
index b7e591641..2ebf32b0d 100644
--- a/e2etests/testdata/stable/all_shapes_shadow/dagre/board.exp.json
+++ b/e2etests/testdata/stable/all_shapes_shadow/dagre/board.exp.json
@@ -732,7 +732,7 @@
},
{
"x": 55.5,
- "y": 129.4
+ "y": 129.39999389648438
},
{
"x": 55.5,
@@ -782,8 +782,8 @@
"y": 326
},
{
- "x": 55.6,
- "y": 349.2
+ "x": 55.599998474121094,
+ "y": 349.20001220703125
},
{
"x": 56,
@@ -826,11 +826,11 @@
},
{
"x": 269,
- "y": 129.4
+ "y": 129.39999389648438
},
{
"x": 269,
- "y": 153.8
+ "y": 153.8000030517578
},
{
"x": 269,
@@ -873,7 +873,7 @@
},
{
"x": 269,
- "y": 322.2
+ "y": 322.20001220703125
},
{
"x": 269,
@@ -919,12 +919,12 @@
"y": 79
},
{
- "x": 497.4,
- "y": 129.4
+ "x": 497.3999938964844,
+ "y": 129.39999389648438
},
{
- "x": 497.6,
- "y": 154.2
+ "x": 497.6000061035156,
+ "y": 154.1999969482422
},
{
"x": 498,
@@ -966,12 +966,12 @@
"y": 276
},
{
- "x": 497.4,
+ "x": 497.3999938964844,
"y": 324
},
{
- "x": 497.6,
- "y": 347.8
+ "x": 497.6000061035156,
+ "y": 347.79998779296875
},
{
"x": 498,
@@ -1013,12 +1013,12 @@
"y": 47
},
{
- "x": 684.6,
+ "x": 684.5999755859375,
"y": 123
},
{
- "x": 684.6,
- "y": 154.8
+ "x": 684.5999755859375,
+ "y": 154.8000030517578
},
{
"x": 685,
@@ -1060,12 +1060,12 @@
"y": 272
},
{
- "x": 684.4,
- "y": 323.2
+ "x": 684.4000244140625,
+ "y": 323.20001220703125
},
{
- "x": 684.6,
- "y": 348.6
+ "x": 684.5999755859375,
+ "y": 348.6000061035156
},
{
"x": 685,
@@ -1112,7 +1112,7 @@
},
{
"x": 870,
- "y": 154.4
+ "y": 154.39999389648438
},
{
"x": 870,
@@ -1155,11 +1155,11 @@
},
{
"x": 870,
- "y": 323.6
+ "y": 323.6000061035156
},
{
"x": 870,
- "y": 348.8
+ "y": 348.79998779296875
},
{
"x": 870,
@@ -1202,11 +1202,11 @@
},
{
"x": 1072,
- "y": 129.8
+ "y": 129.8000030517578
},
{
"x": 1072,
- "y": 153.2
+ "y": 153.1999969482422
},
{
"x": 1072,
diff --git a/e2etests/testdata/stable/all_shapes_shadow/dagre/sketch.exp.svg b/e2etests/testdata/stable/all_shapes_shadow/dagre/sketch.exp.svg
index 99e309686..baa7b522d 100644
--- a/e2etests/testdata/stable/all_shapes_shadow/dagre/sketch.exp.svg
+++ b/e2etests/testdata/stable/all_shapes_shadow/dagre/sketch.exp.svg
@@ -1,10 +1,10 @@
-
+ .d2-2868965404 .fill-N1{fill:#0A0F25;}
+ .d2-2868965404 .fill-N2{fill:#676C7E;}
+ .d2-2868965404 .fill-N3{fill:#9499AB;}
+ .d2-2868965404 .fill-N4{fill:#CFD2DD;}
+ .d2-2868965404 .fill-N5{fill:#DEE1EB;}
+ .d2-2868965404 .fill-N6{fill:#EEF1F8;}
+ .d2-2868965404 .fill-N7{fill:#FFFFFF;}
+ .d2-2868965404 .fill-B1{fill:#0D32B2;}
+ .d2-2868965404 .fill-B2{fill:#0D32B2;}
+ .d2-2868965404 .fill-B3{fill:#E3E9FD;}
+ .d2-2868965404 .fill-B4{fill:#E3E9FD;}
+ .d2-2868965404 .fill-B5{fill:#EDF0FD;}
+ .d2-2868965404 .fill-B6{fill:#F7F8FE;}
+ .d2-2868965404 .fill-AA2{fill:#4A6FF3;}
+ .d2-2868965404 .fill-AA4{fill:#EDF0FD;}
+ .d2-2868965404 .fill-AA5{fill:#F7F8FE;}
+ .d2-2868965404 .fill-AB4{fill:#EDF0FD;}
+ .d2-2868965404 .fill-AB5{fill:#F7F8FE;}
+ .d2-2868965404 .stroke-N1{stroke:#0A0F25;}
+ .d2-2868965404 .stroke-N2{stroke:#676C7E;}
+ .d2-2868965404 .stroke-N3{stroke:#9499AB;}
+ .d2-2868965404 .stroke-N4{stroke:#CFD2DD;}
+ .d2-2868965404 .stroke-N5{stroke:#DEE1EB;}
+ .d2-2868965404 .stroke-N6{stroke:#EEF1F8;}
+ .d2-2868965404 .stroke-N7{stroke:#FFFFFF;}
+ .d2-2868965404 .stroke-B1{stroke:#0D32B2;}
+ .d2-2868965404 .stroke-B2{stroke:#0D32B2;}
+ .d2-2868965404 .stroke-B3{stroke:#E3E9FD;}
+ .d2-2868965404 .stroke-B4{stroke:#E3E9FD;}
+ .d2-2868965404 .stroke-B5{stroke:#EDF0FD;}
+ .d2-2868965404 .stroke-B6{stroke:#F7F8FE;}
+ .d2-2868965404 .stroke-AA2{stroke:#4A6FF3;}
+ .d2-2868965404 .stroke-AA4{stroke:#EDF0FD;}
+ .d2-2868965404 .stroke-AA5{stroke:#F7F8FE;}
+ .d2-2868965404 .stroke-AB4{stroke:#EDF0FD;}
+ .d2-2868965404 .stroke-AB5{stroke:#F7F8FE;}
+ .d2-2868965404 .background-color-N1{background-color:#0A0F25;}
+ .d2-2868965404 .background-color-N2{background-color:#676C7E;}
+ .d2-2868965404 .background-color-N3{background-color:#9499AB;}
+ .d2-2868965404 .background-color-N4{background-color:#CFD2DD;}
+ .d2-2868965404 .background-color-N5{background-color:#DEE1EB;}
+ .d2-2868965404 .background-color-N6{background-color:#EEF1F8;}
+ .d2-2868965404 .background-color-N7{background-color:#FFFFFF;}
+ .d2-2868965404 .background-color-B1{background-color:#0D32B2;}
+ .d2-2868965404 .background-color-B2{background-color:#0D32B2;}
+ .d2-2868965404 .background-color-B3{background-color:#E3E9FD;}
+ .d2-2868965404 .background-color-B4{background-color:#E3E9FD;}
+ .d2-2868965404 .background-color-B5{background-color:#EDF0FD;}
+ .d2-2868965404 .background-color-B6{background-color:#F7F8FE;}
+ .d2-2868965404 .background-color-AA2{background-color:#4A6FF3;}
+ .d2-2868965404 .background-color-AA4{background-color:#EDF0FD;}
+ .d2-2868965404 .background-color-AA5{background-color:#F7F8FE;}
+ .d2-2868965404 .background-color-AB4{background-color:#EDF0FD;}
+ .d2-2868965404 .background-color-AB5{background-color:#F7F8FE;}
+ .d2-2868965404 .color-N1{color:#0A0F25;}
+ .d2-2868965404 .color-N2{color:#676C7E;}
+ .d2-2868965404 .color-N3{color:#9499AB;}
+ .d2-2868965404 .color-N4{color:#CFD2DD;}
+ .d2-2868965404 .color-N5{color:#DEE1EB;}
+ .d2-2868965404 .color-N6{color:#EEF1F8;}
+ .d2-2868965404 .color-N7{color:#FFFFFF;}
+ .d2-2868965404 .color-B1{color:#0D32B2;}
+ .d2-2868965404 .color-B2{color:#0D32B2;}
+ .d2-2868965404 .color-B3{color:#E3E9FD;}
+ .d2-2868965404 .color-B4{color:#E3E9FD;}
+ .d2-2868965404 .color-B5{color:#EDF0FD;}
+ .d2-2868965404 .color-B6{color:#F7F8FE;}
+ .d2-2868965404 .color-AA2{color:#4A6FF3;}
+ .d2-2868965404 .color-AA4{color:#EDF0FD;}
+ .d2-2868965404 .color-AA5{color:#F7F8FE;}
+ .d2-2868965404 .color-AB4{color:#EDF0FD;}
+ .d2-2868965404 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>
@@ -97,7 +97,7 @@
- rectangle square page parallelogram document cylinder queue package step callout stored_data person diamond oval circle hexagon cloud
-
+ rectangle square page parallelogram document cylinder queue package step callout stored_data person diamond oval circle hexagon cloud
+
\ No newline at end of file
diff --git a/e2etests/testdata/stable/all_shapes_shadow/elk/sketch.exp.svg b/e2etests/testdata/stable/all_shapes_shadow/elk/sketch.exp.svg
index 47247563d..b01c0ad10 100644
--- a/e2etests/testdata/stable/all_shapes_shadow/elk/sketch.exp.svg
+++ b/e2etests/testdata/stable/all_shapes_shadow/elk/sketch.exp.svg
@@ -1,10 +1,10 @@
-your love life will be happy harmonious boredom immortality Friday Monday Insomnia Sleep Wake Dream Listen Talk hear
+ .d2-3062094783 .fill-N1{fill:#0A0F25;}
+ .d2-3062094783 .fill-N2{fill:#676C7E;}
+ .d2-3062094783 .fill-N3{fill:#9499AB;}
+ .d2-3062094783 .fill-N4{fill:#CFD2DD;}
+ .d2-3062094783 .fill-N5{fill:#DEE1EB;}
+ .d2-3062094783 .fill-N6{fill:#EEF1F8;}
+ .d2-3062094783 .fill-N7{fill:#FFFFFF;}
+ .d2-3062094783 .fill-B1{fill:#0D32B2;}
+ .d2-3062094783 .fill-B2{fill:#0D32B2;}
+ .d2-3062094783 .fill-B3{fill:#E3E9FD;}
+ .d2-3062094783 .fill-B4{fill:#E3E9FD;}
+ .d2-3062094783 .fill-B5{fill:#EDF0FD;}
+ .d2-3062094783 .fill-B6{fill:#F7F8FE;}
+ .d2-3062094783 .fill-AA2{fill:#4A6FF3;}
+ .d2-3062094783 .fill-AA4{fill:#EDF0FD;}
+ .d2-3062094783 .fill-AA5{fill:#F7F8FE;}
+ .d2-3062094783 .fill-AB4{fill:#EDF0FD;}
+ .d2-3062094783 .fill-AB5{fill:#F7F8FE;}
+ .d2-3062094783 .stroke-N1{stroke:#0A0F25;}
+ .d2-3062094783 .stroke-N2{stroke:#676C7E;}
+ .d2-3062094783 .stroke-N3{stroke:#9499AB;}
+ .d2-3062094783 .stroke-N4{stroke:#CFD2DD;}
+ .d2-3062094783 .stroke-N5{stroke:#DEE1EB;}
+ .d2-3062094783 .stroke-N6{stroke:#EEF1F8;}
+ .d2-3062094783 .stroke-N7{stroke:#FFFFFF;}
+ .d2-3062094783 .stroke-B1{stroke:#0D32B2;}
+ .d2-3062094783 .stroke-B2{stroke:#0D32B2;}
+ .d2-3062094783 .stroke-B3{stroke:#E3E9FD;}
+ .d2-3062094783 .stroke-B4{stroke:#E3E9FD;}
+ .d2-3062094783 .stroke-B5{stroke:#EDF0FD;}
+ .d2-3062094783 .stroke-B6{stroke:#F7F8FE;}
+ .d2-3062094783 .stroke-AA2{stroke:#4A6FF3;}
+ .d2-3062094783 .stroke-AA4{stroke:#EDF0FD;}
+ .d2-3062094783 .stroke-AA5{stroke:#F7F8FE;}
+ .d2-3062094783 .stroke-AB4{stroke:#EDF0FD;}
+ .d2-3062094783 .stroke-AB5{stroke:#F7F8FE;}
+ .d2-3062094783 .background-color-N1{background-color:#0A0F25;}
+ .d2-3062094783 .background-color-N2{background-color:#676C7E;}
+ .d2-3062094783 .background-color-N3{background-color:#9499AB;}
+ .d2-3062094783 .background-color-N4{background-color:#CFD2DD;}
+ .d2-3062094783 .background-color-N5{background-color:#DEE1EB;}
+ .d2-3062094783 .background-color-N6{background-color:#EEF1F8;}
+ .d2-3062094783 .background-color-N7{background-color:#FFFFFF;}
+ .d2-3062094783 .background-color-B1{background-color:#0D32B2;}
+ .d2-3062094783 .background-color-B2{background-color:#0D32B2;}
+ .d2-3062094783 .background-color-B3{background-color:#E3E9FD;}
+ .d2-3062094783 .background-color-B4{background-color:#E3E9FD;}
+ .d2-3062094783 .background-color-B5{background-color:#EDF0FD;}
+ .d2-3062094783 .background-color-B6{background-color:#F7F8FE;}
+ .d2-3062094783 .background-color-AA2{background-color:#4A6FF3;}
+ .d2-3062094783 .background-color-AA4{background-color:#EDF0FD;}
+ .d2-3062094783 .background-color-AA5{background-color:#F7F8FE;}
+ .d2-3062094783 .background-color-AB4{background-color:#EDF0FD;}
+ .d2-3062094783 .background-color-AB5{background-color:#F7F8FE;}
+ .d2-3062094783 .color-N1{color:#0A0F25;}
+ .d2-3062094783 .color-N2{color:#676C7E;}
+ .d2-3062094783 .color-N3{color:#9499AB;}
+ .d2-3062094783 .color-N4{color:#CFD2DD;}
+ .d2-3062094783 .color-N5{color:#DEE1EB;}
+ .d2-3062094783 .color-N6{color:#EEF1F8;}
+ .d2-3062094783 .color-N7{color:#FFFFFF;}
+ .d2-3062094783 .color-B1{color:#0D32B2;}
+ .d2-3062094783 .color-B2{color:#0D32B2;}
+ .d2-3062094783 .color-B3{color:#E3E9FD;}
+ .d2-3062094783 .color-B4{color:#E3E9FD;}
+ .d2-3062094783 .color-B5{color:#EDF0FD;}
+ .d2-3062094783 .color-B6{color:#F7F8FE;}
+ .d2-3062094783 .color-AA2{color:#4A6FF3;}
+ .d2-3062094783 .color-AA4{color:#EDF0FD;}
+ .d2-3062094783 .color-AA5{color:#F7F8FE;}
+ .d2-3062094783 .color-AB4{color:#EDF0FD;}
+ .d2-3062094783 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>your love life will be happy harmonious boredom immortality Friday Monday Insomnia Sleep Wake Dream Listen Talk hear
\ No newline at end of file
diff --git a/e2etests/testdata/stable/animated/elk/board.exp.json b/e2etests/testdata/stable/animated/elk/board.exp.json
index d09a6303a..334982f6e 100644
--- a/e2etests/testdata/stable/animated/elk/board.exp.json
+++ b/e2etests/testdata/stable/animated/elk/board.exp.json
@@ -677,11 +677,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 472.49999999999994,
+ "x": 472.4989929199219,
"y": 78
},
{
- "x": 472.49999999999994,
+ "x": 472.4989929199219,
"y": 158
}
],
diff --git a/e2etests/testdata/stable/animated/elk/sketch.exp.svg b/e2etests/testdata/stable/animated/elk/sketch.exp.svg
index 8cf4d0ec3..900d01992 100644
--- a/e2etests/testdata/stable/animated/elk/sketch.exp.svg
+++ b/e2etests/testdata/stable/animated/elk/sketch.exp.svg
@@ -1,23 +1,23 @@
-your love life will be happy harmonious boredom immortality Friday Monday Insomnia Sleep Wake Dream Listen Talk hear
+ .d2-313708819 .fill-N1{fill:#0A0F25;}
+ .d2-313708819 .fill-N2{fill:#676C7E;}
+ .d2-313708819 .fill-N3{fill:#9499AB;}
+ .d2-313708819 .fill-N4{fill:#CFD2DD;}
+ .d2-313708819 .fill-N5{fill:#DEE1EB;}
+ .d2-313708819 .fill-N6{fill:#EEF1F8;}
+ .d2-313708819 .fill-N7{fill:#FFFFFF;}
+ .d2-313708819 .fill-B1{fill:#0D32B2;}
+ .d2-313708819 .fill-B2{fill:#0D32B2;}
+ .d2-313708819 .fill-B3{fill:#E3E9FD;}
+ .d2-313708819 .fill-B4{fill:#E3E9FD;}
+ .d2-313708819 .fill-B5{fill:#EDF0FD;}
+ .d2-313708819 .fill-B6{fill:#F7F8FE;}
+ .d2-313708819 .fill-AA2{fill:#4A6FF3;}
+ .d2-313708819 .fill-AA4{fill:#EDF0FD;}
+ .d2-313708819 .fill-AA5{fill:#F7F8FE;}
+ .d2-313708819 .fill-AB4{fill:#EDF0FD;}
+ .d2-313708819 .fill-AB5{fill:#F7F8FE;}
+ .d2-313708819 .stroke-N1{stroke:#0A0F25;}
+ .d2-313708819 .stroke-N2{stroke:#676C7E;}
+ .d2-313708819 .stroke-N3{stroke:#9499AB;}
+ .d2-313708819 .stroke-N4{stroke:#CFD2DD;}
+ .d2-313708819 .stroke-N5{stroke:#DEE1EB;}
+ .d2-313708819 .stroke-N6{stroke:#EEF1F8;}
+ .d2-313708819 .stroke-N7{stroke:#FFFFFF;}
+ .d2-313708819 .stroke-B1{stroke:#0D32B2;}
+ .d2-313708819 .stroke-B2{stroke:#0D32B2;}
+ .d2-313708819 .stroke-B3{stroke:#E3E9FD;}
+ .d2-313708819 .stroke-B4{stroke:#E3E9FD;}
+ .d2-313708819 .stroke-B5{stroke:#EDF0FD;}
+ .d2-313708819 .stroke-B6{stroke:#F7F8FE;}
+ .d2-313708819 .stroke-AA2{stroke:#4A6FF3;}
+ .d2-313708819 .stroke-AA4{stroke:#EDF0FD;}
+ .d2-313708819 .stroke-AA5{stroke:#F7F8FE;}
+ .d2-313708819 .stroke-AB4{stroke:#EDF0FD;}
+ .d2-313708819 .stroke-AB5{stroke:#F7F8FE;}
+ .d2-313708819 .background-color-N1{background-color:#0A0F25;}
+ .d2-313708819 .background-color-N2{background-color:#676C7E;}
+ .d2-313708819 .background-color-N3{background-color:#9499AB;}
+ .d2-313708819 .background-color-N4{background-color:#CFD2DD;}
+ .d2-313708819 .background-color-N5{background-color:#DEE1EB;}
+ .d2-313708819 .background-color-N6{background-color:#EEF1F8;}
+ .d2-313708819 .background-color-N7{background-color:#FFFFFF;}
+ .d2-313708819 .background-color-B1{background-color:#0D32B2;}
+ .d2-313708819 .background-color-B2{background-color:#0D32B2;}
+ .d2-313708819 .background-color-B3{background-color:#E3E9FD;}
+ .d2-313708819 .background-color-B4{background-color:#E3E9FD;}
+ .d2-313708819 .background-color-B5{background-color:#EDF0FD;}
+ .d2-313708819 .background-color-B6{background-color:#F7F8FE;}
+ .d2-313708819 .background-color-AA2{background-color:#4A6FF3;}
+ .d2-313708819 .background-color-AA4{background-color:#EDF0FD;}
+ .d2-313708819 .background-color-AA5{background-color:#F7F8FE;}
+ .d2-313708819 .background-color-AB4{background-color:#EDF0FD;}
+ .d2-313708819 .background-color-AB5{background-color:#F7F8FE;}
+ .d2-313708819 .color-N1{color:#0A0F25;}
+ .d2-313708819 .color-N2{color:#676C7E;}
+ .d2-313708819 .color-N3{color:#9499AB;}
+ .d2-313708819 .color-N4{color:#CFD2DD;}
+ .d2-313708819 .color-N5{color:#DEE1EB;}
+ .d2-313708819 .color-N6{color:#EEF1F8;}
+ .d2-313708819 .color-N7{color:#FFFFFF;}
+ .d2-313708819 .color-B1{color:#0D32B2;}
+ .d2-313708819 .color-B2{color:#0D32B2;}
+ .d2-313708819 .color-B3{color:#E3E9FD;}
+ .d2-313708819 .color-B4{color:#E3E9FD;}
+ .d2-313708819 .color-B5{color:#EDF0FD;}
+ .d2-313708819 .color-B6{color:#F7F8FE;}
+ .d2-313708819 .color-AA2{color:#4A6FF3;}
+ .d2-313708819 .color-AA4{color:#EDF0FD;}
+ .d2-313708819 .color-AA5{color:#F7F8FE;}
+ .d2-313708819 .color-AB4{color:#EDF0FD;}
+ .d2-313708819 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>your love life will be happy harmonious boredom immortality Friday Monday Insomnia Sleep Wake Dream Listen Talk hear
\ No newline at end of file
diff --git a/e2etests/testdata/stable/array-classes/dagre/sketch.exp.svg b/e2etests/testdata/stable/array-classes/dagre/sketch.exp.svg
index e9f07e5c5..650107129 100644
--- a/e2etests/testdata/stable/array-classes/dagre/sketch.exp.svg
+++ b/e2etests/testdata/stable/array-classes/dagre/sketch.exp.svg
@@ -1,10 +1,10 @@
-a b c *
+ .d2-1882127172 .fill-N1{fill:#0A0F25;}
+ .d2-1882127172 .fill-N2{fill:#676C7E;}
+ .d2-1882127172 .fill-N3{fill:#9499AB;}
+ .d2-1882127172 .fill-N4{fill:#CFD2DD;}
+ .d2-1882127172 .fill-N5{fill:#DEE1EB;}
+ .d2-1882127172 .fill-N6{fill:#EEF1F8;}
+ .d2-1882127172 .fill-N7{fill:#FFFFFF;}
+ .d2-1882127172 .fill-B1{fill:#0D32B2;}
+ .d2-1882127172 .fill-B2{fill:#0D32B2;}
+ .d2-1882127172 .fill-B3{fill:#E3E9FD;}
+ .d2-1882127172 .fill-B4{fill:#E3E9FD;}
+ .d2-1882127172 .fill-B5{fill:#EDF0FD;}
+ .d2-1882127172 .fill-B6{fill:#F7F8FE;}
+ .d2-1882127172 .fill-AA2{fill:#4A6FF3;}
+ .d2-1882127172 .fill-AA4{fill:#EDF0FD;}
+ .d2-1882127172 .fill-AA5{fill:#F7F8FE;}
+ .d2-1882127172 .fill-AB4{fill:#EDF0FD;}
+ .d2-1882127172 .fill-AB5{fill:#F7F8FE;}
+ .d2-1882127172 .stroke-N1{stroke:#0A0F25;}
+ .d2-1882127172 .stroke-N2{stroke:#676C7E;}
+ .d2-1882127172 .stroke-N3{stroke:#9499AB;}
+ .d2-1882127172 .stroke-N4{stroke:#CFD2DD;}
+ .d2-1882127172 .stroke-N5{stroke:#DEE1EB;}
+ .d2-1882127172 .stroke-N6{stroke:#EEF1F8;}
+ .d2-1882127172 .stroke-N7{stroke:#FFFFFF;}
+ .d2-1882127172 .stroke-B1{stroke:#0D32B2;}
+ .d2-1882127172 .stroke-B2{stroke:#0D32B2;}
+ .d2-1882127172 .stroke-B3{stroke:#E3E9FD;}
+ .d2-1882127172 .stroke-B4{stroke:#E3E9FD;}
+ .d2-1882127172 .stroke-B5{stroke:#EDF0FD;}
+ .d2-1882127172 .stroke-B6{stroke:#F7F8FE;}
+ .d2-1882127172 .stroke-AA2{stroke:#4A6FF3;}
+ .d2-1882127172 .stroke-AA4{stroke:#EDF0FD;}
+ .d2-1882127172 .stroke-AA5{stroke:#F7F8FE;}
+ .d2-1882127172 .stroke-AB4{stroke:#EDF0FD;}
+ .d2-1882127172 .stroke-AB5{stroke:#F7F8FE;}
+ .d2-1882127172 .background-color-N1{background-color:#0A0F25;}
+ .d2-1882127172 .background-color-N2{background-color:#676C7E;}
+ .d2-1882127172 .background-color-N3{background-color:#9499AB;}
+ .d2-1882127172 .background-color-N4{background-color:#CFD2DD;}
+ .d2-1882127172 .background-color-N5{background-color:#DEE1EB;}
+ .d2-1882127172 .background-color-N6{background-color:#EEF1F8;}
+ .d2-1882127172 .background-color-N7{background-color:#FFFFFF;}
+ .d2-1882127172 .background-color-B1{background-color:#0D32B2;}
+ .d2-1882127172 .background-color-B2{background-color:#0D32B2;}
+ .d2-1882127172 .background-color-B3{background-color:#E3E9FD;}
+ .d2-1882127172 .background-color-B4{background-color:#E3E9FD;}
+ .d2-1882127172 .background-color-B5{background-color:#EDF0FD;}
+ .d2-1882127172 .background-color-B6{background-color:#F7F8FE;}
+ .d2-1882127172 .background-color-AA2{background-color:#4A6FF3;}
+ .d2-1882127172 .background-color-AA4{background-color:#EDF0FD;}
+ .d2-1882127172 .background-color-AA5{background-color:#F7F8FE;}
+ .d2-1882127172 .background-color-AB4{background-color:#EDF0FD;}
+ .d2-1882127172 .background-color-AB5{background-color:#F7F8FE;}
+ .d2-1882127172 .color-N1{color:#0A0F25;}
+ .d2-1882127172 .color-N2{color:#676C7E;}
+ .d2-1882127172 .color-N3{color:#9499AB;}
+ .d2-1882127172 .color-N4{color:#CFD2DD;}
+ .d2-1882127172 .color-N5{color:#DEE1EB;}
+ .d2-1882127172 .color-N6{color:#EEF1F8;}
+ .d2-1882127172 .color-N7{color:#FFFFFF;}
+ .d2-1882127172 .color-B1{color:#0D32B2;}
+ .d2-1882127172 .color-B2{color:#0D32B2;}
+ .d2-1882127172 .color-B3{color:#E3E9FD;}
+ .d2-1882127172 .color-B4{color:#E3E9FD;}
+ .d2-1882127172 .color-B5{color:#EDF0FD;}
+ .d2-1882127172 .color-B6{color:#F7F8FE;}
+ .d2-1882127172 .color-AA2{color:#4A6FF3;}
+ .d2-1882127172 .color-AA4{color:#EDF0FD;}
+ .d2-1882127172 .color-AA5{color:#F7F8FE;}
+ .d2-1882127172 .color-AB4{color:#EDF0FD;}
+ .d2-1882127172 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>a b c *
\ No newline at end of file
diff --git a/e2etests/testdata/stable/arrowhead_adjustment/elk/board.exp.json b/e2etests/testdata/stable/arrowhead_adjustment/elk/board.exp.json
index 6b9272da9..f449aba8d 100644
--- a/e2etests/testdata/stable/arrowhead_adjustment/elk/board.exp.json
+++ b/e2etests/testdata/stable/arrowhead_adjustment/elk/board.exp.json
@@ -255,11 +255,11 @@
"y": 454
},
{
- "x": 109.16666666666667,
+ "x": 109.16600036621094,
"y": 454
},
{
- "x": 109.16666666666667,
+ "x": 109.16600036621094,
"y": 494
}
],
@@ -347,7 +347,7 @@
"y": 338
},
{
- "x": 161.33333333333334,
+ "x": 161.33299255371094,
"y": 298
},
{
diff --git a/e2etests/testdata/stable/arrowhead_adjustment/elk/sketch.exp.svg b/e2etests/testdata/stable/arrowhead_adjustment/elk/sketch.exp.svg
index 84a80c6db..7c54fb238 100644
--- a/e2etests/testdata/stable/arrowhead_adjustment/elk/sketch.exp.svg
+++ b/e2etests/testdata/stable/arrowhead_adjustment/elk/sketch.exp.svg
@@ -1,17 +1,17 @@
-a b c *
+ .d2-1634419632 .fill-N1{fill:#0A0F25;}
+ .d2-1634419632 .fill-N2{fill:#676C7E;}
+ .d2-1634419632 .fill-N3{fill:#9499AB;}
+ .d2-1634419632 .fill-N4{fill:#CFD2DD;}
+ .d2-1634419632 .fill-N5{fill:#DEE1EB;}
+ .d2-1634419632 .fill-N6{fill:#EEF1F8;}
+ .d2-1634419632 .fill-N7{fill:#FFFFFF;}
+ .d2-1634419632 .fill-B1{fill:#0D32B2;}
+ .d2-1634419632 .fill-B2{fill:#0D32B2;}
+ .d2-1634419632 .fill-B3{fill:#E3E9FD;}
+ .d2-1634419632 .fill-B4{fill:#E3E9FD;}
+ .d2-1634419632 .fill-B5{fill:#EDF0FD;}
+ .d2-1634419632 .fill-B6{fill:#F7F8FE;}
+ .d2-1634419632 .fill-AA2{fill:#4A6FF3;}
+ .d2-1634419632 .fill-AA4{fill:#EDF0FD;}
+ .d2-1634419632 .fill-AA5{fill:#F7F8FE;}
+ .d2-1634419632 .fill-AB4{fill:#EDF0FD;}
+ .d2-1634419632 .fill-AB5{fill:#F7F8FE;}
+ .d2-1634419632 .stroke-N1{stroke:#0A0F25;}
+ .d2-1634419632 .stroke-N2{stroke:#676C7E;}
+ .d2-1634419632 .stroke-N3{stroke:#9499AB;}
+ .d2-1634419632 .stroke-N4{stroke:#CFD2DD;}
+ .d2-1634419632 .stroke-N5{stroke:#DEE1EB;}
+ .d2-1634419632 .stroke-N6{stroke:#EEF1F8;}
+ .d2-1634419632 .stroke-N7{stroke:#FFFFFF;}
+ .d2-1634419632 .stroke-B1{stroke:#0D32B2;}
+ .d2-1634419632 .stroke-B2{stroke:#0D32B2;}
+ .d2-1634419632 .stroke-B3{stroke:#E3E9FD;}
+ .d2-1634419632 .stroke-B4{stroke:#E3E9FD;}
+ .d2-1634419632 .stroke-B5{stroke:#EDF0FD;}
+ .d2-1634419632 .stroke-B6{stroke:#F7F8FE;}
+ .d2-1634419632 .stroke-AA2{stroke:#4A6FF3;}
+ .d2-1634419632 .stroke-AA4{stroke:#EDF0FD;}
+ .d2-1634419632 .stroke-AA5{stroke:#F7F8FE;}
+ .d2-1634419632 .stroke-AB4{stroke:#EDF0FD;}
+ .d2-1634419632 .stroke-AB5{stroke:#F7F8FE;}
+ .d2-1634419632 .background-color-N1{background-color:#0A0F25;}
+ .d2-1634419632 .background-color-N2{background-color:#676C7E;}
+ .d2-1634419632 .background-color-N3{background-color:#9499AB;}
+ .d2-1634419632 .background-color-N4{background-color:#CFD2DD;}
+ .d2-1634419632 .background-color-N5{background-color:#DEE1EB;}
+ .d2-1634419632 .background-color-N6{background-color:#EEF1F8;}
+ .d2-1634419632 .background-color-N7{background-color:#FFFFFF;}
+ .d2-1634419632 .background-color-B1{background-color:#0D32B2;}
+ .d2-1634419632 .background-color-B2{background-color:#0D32B2;}
+ .d2-1634419632 .background-color-B3{background-color:#E3E9FD;}
+ .d2-1634419632 .background-color-B4{background-color:#E3E9FD;}
+ .d2-1634419632 .background-color-B5{background-color:#EDF0FD;}
+ .d2-1634419632 .background-color-B6{background-color:#F7F8FE;}
+ .d2-1634419632 .background-color-AA2{background-color:#4A6FF3;}
+ .d2-1634419632 .background-color-AA4{background-color:#EDF0FD;}
+ .d2-1634419632 .background-color-AA5{background-color:#F7F8FE;}
+ .d2-1634419632 .background-color-AB4{background-color:#EDF0FD;}
+ .d2-1634419632 .background-color-AB5{background-color:#F7F8FE;}
+ .d2-1634419632 .color-N1{color:#0A0F25;}
+ .d2-1634419632 .color-N2{color:#676C7E;}
+ .d2-1634419632 .color-N3{color:#9499AB;}
+ .d2-1634419632 .color-N4{color:#CFD2DD;}
+ .d2-1634419632 .color-N5{color:#DEE1EB;}
+ .d2-1634419632 .color-N6{color:#EEF1F8;}
+ .d2-1634419632 .color-N7{color:#FFFFFF;}
+ .d2-1634419632 .color-B1{color:#0D32B2;}
+ .d2-1634419632 .color-B2{color:#0D32B2;}
+ .d2-1634419632 .color-B3{color:#E3E9FD;}
+ .d2-1634419632 .color-B4{color:#E3E9FD;}
+ .d2-1634419632 .color-B5{color:#EDF0FD;}
+ .d2-1634419632 .color-B6{color:#F7F8FE;}
+ .d2-1634419632 .color-AA2{color:#4A6FF3;}
+ .d2-1634419632 .color-AA4{color:#EDF0FD;}
+ .d2-1634419632 .color-AA5{color:#F7F8FE;}
+ .d2-1634419632 .color-AB4{color:#EDF0FD;}
+ .d2-1634419632 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>a b c *
\ No newline at end of file
diff --git a/e2etests/testdata/stable/arrowhead_labels/dagre/board.exp.json b/e2etests/testdata/stable/arrowhead_labels/dagre/board.exp.json
index 7ad80cd46..86ecae421 100644
--- a/e2etests/testdata/stable/arrowhead_labels/dagre/board.exp.json
+++ b/e2etests/testdata/stable/arrowhead_labels/dagre/board.exp.json
@@ -141,11 +141,11 @@
},
{
"x": 100.5,
- "y": 114.4
+ "y": 114.4000015258789
},
{
"x": 100.5,
- "y": 138.7
+ "y": 138.6999969482422
},
{
"x": 100.5,
diff --git a/e2etests/testdata/stable/arrowhead_labels/dagre/sketch.exp.svg b/e2etests/testdata/stable/arrowhead_labels/dagre/sketch.exp.svg
index a78339c48..b0217a8eb 100644
--- a/e2etests/testdata/stable/arrowhead_labels/dagre/sketch.exp.svg
+++ b/e2etests/testdata/stable/arrowhead_labels/dagre/sketch.exp.svg
@@ -1,17 +1,17 @@
-a b To err is human, to moo bovine 1 *
+ .d2-2016173908 .fill-N1{fill:#0A0F25;}
+ .d2-2016173908 .fill-N2{fill:#676C7E;}
+ .d2-2016173908 .fill-N3{fill:#9499AB;}
+ .d2-2016173908 .fill-N4{fill:#CFD2DD;}
+ .d2-2016173908 .fill-N5{fill:#DEE1EB;}
+ .d2-2016173908 .fill-N6{fill:#EEF1F8;}
+ .d2-2016173908 .fill-N7{fill:#FFFFFF;}
+ .d2-2016173908 .fill-B1{fill:#0D32B2;}
+ .d2-2016173908 .fill-B2{fill:#0D32B2;}
+ .d2-2016173908 .fill-B3{fill:#E3E9FD;}
+ .d2-2016173908 .fill-B4{fill:#E3E9FD;}
+ .d2-2016173908 .fill-B5{fill:#EDF0FD;}
+ .d2-2016173908 .fill-B6{fill:#F7F8FE;}
+ .d2-2016173908 .fill-AA2{fill:#4A6FF3;}
+ .d2-2016173908 .fill-AA4{fill:#EDF0FD;}
+ .d2-2016173908 .fill-AA5{fill:#F7F8FE;}
+ .d2-2016173908 .fill-AB4{fill:#EDF0FD;}
+ .d2-2016173908 .fill-AB5{fill:#F7F8FE;}
+ .d2-2016173908 .stroke-N1{stroke:#0A0F25;}
+ .d2-2016173908 .stroke-N2{stroke:#676C7E;}
+ .d2-2016173908 .stroke-N3{stroke:#9499AB;}
+ .d2-2016173908 .stroke-N4{stroke:#CFD2DD;}
+ .d2-2016173908 .stroke-N5{stroke:#DEE1EB;}
+ .d2-2016173908 .stroke-N6{stroke:#EEF1F8;}
+ .d2-2016173908 .stroke-N7{stroke:#FFFFFF;}
+ .d2-2016173908 .stroke-B1{stroke:#0D32B2;}
+ .d2-2016173908 .stroke-B2{stroke:#0D32B2;}
+ .d2-2016173908 .stroke-B3{stroke:#E3E9FD;}
+ .d2-2016173908 .stroke-B4{stroke:#E3E9FD;}
+ .d2-2016173908 .stroke-B5{stroke:#EDF0FD;}
+ .d2-2016173908 .stroke-B6{stroke:#F7F8FE;}
+ .d2-2016173908 .stroke-AA2{stroke:#4A6FF3;}
+ .d2-2016173908 .stroke-AA4{stroke:#EDF0FD;}
+ .d2-2016173908 .stroke-AA5{stroke:#F7F8FE;}
+ .d2-2016173908 .stroke-AB4{stroke:#EDF0FD;}
+ .d2-2016173908 .stroke-AB5{stroke:#F7F8FE;}
+ .d2-2016173908 .background-color-N1{background-color:#0A0F25;}
+ .d2-2016173908 .background-color-N2{background-color:#676C7E;}
+ .d2-2016173908 .background-color-N3{background-color:#9499AB;}
+ .d2-2016173908 .background-color-N4{background-color:#CFD2DD;}
+ .d2-2016173908 .background-color-N5{background-color:#DEE1EB;}
+ .d2-2016173908 .background-color-N6{background-color:#EEF1F8;}
+ .d2-2016173908 .background-color-N7{background-color:#FFFFFF;}
+ .d2-2016173908 .background-color-B1{background-color:#0D32B2;}
+ .d2-2016173908 .background-color-B2{background-color:#0D32B2;}
+ .d2-2016173908 .background-color-B3{background-color:#E3E9FD;}
+ .d2-2016173908 .background-color-B4{background-color:#E3E9FD;}
+ .d2-2016173908 .background-color-B5{background-color:#EDF0FD;}
+ .d2-2016173908 .background-color-B6{background-color:#F7F8FE;}
+ .d2-2016173908 .background-color-AA2{background-color:#4A6FF3;}
+ .d2-2016173908 .background-color-AA4{background-color:#EDF0FD;}
+ .d2-2016173908 .background-color-AA5{background-color:#F7F8FE;}
+ .d2-2016173908 .background-color-AB4{background-color:#EDF0FD;}
+ .d2-2016173908 .background-color-AB5{background-color:#F7F8FE;}
+ .d2-2016173908 .color-N1{color:#0A0F25;}
+ .d2-2016173908 .color-N2{color:#676C7E;}
+ .d2-2016173908 .color-N3{color:#9499AB;}
+ .d2-2016173908 .color-N4{color:#CFD2DD;}
+ .d2-2016173908 .color-N5{color:#DEE1EB;}
+ .d2-2016173908 .color-N6{color:#EEF1F8;}
+ .d2-2016173908 .color-N7{color:#FFFFFF;}
+ .d2-2016173908 .color-B1{color:#0D32B2;}
+ .d2-2016173908 .color-B2{color:#0D32B2;}
+ .d2-2016173908 .color-B3{color:#E3E9FD;}
+ .d2-2016173908 .color-B4{color:#E3E9FD;}
+ .d2-2016173908 .color-B5{color:#EDF0FD;}
+ .d2-2016173908 .color-B6{color:#F7F8FE;}
+ .d2-2016173908 .color-AA2{color:#4A6FF3;}
+ .d2-2016173908 .color-AA4{color:#EDF0FD;}
+ .d2-2016173908 .color-AA5{color:#F7F8FE;}
+ .d2-2016173908 .color-AB4{color:#EDF0FD;}
+ .d2-2016173908 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>a b To err is human, to moo bovine 1 *
\ No newline at end of file
diff --git a/e2etests/testdata/stable/arrowhead_labels/elk/sketch.exp.svg b/e2etests/testdata/stable/arrowhead_labels/elk/sketch.exp.svg
index c66a23ff6..b3fedcf52 100644
--- a/e2etests/testdata/stable/arrowhead_labels/elk/sketch.exp.svg
+++ b/e2etests/testdata/stable/arrowhead_labels/elk/sketch.exp.svg
@@ -1,17 +1,17 @@
-default line arrow diamond filled diamond circle filled circle cf one cf one required cf many cf many required 1 1 2 2 4 4 8 8 15 15 1 1 2 2 4 4 8 8 15 15 1 1 2 2 4 4 8 8 15 15 1 1 2 2 4 4 8 8 15 15 1 1 2 2 4 4 8 8 15 15 1 1 2 2 4 4 8 8 15 15 1 1 2 2 4 4 8 8 15 15 1 1 2 2 4 4 8 8 15 15 1 1 2 2 4 4 8 8 15 15 1 1 2 2 4 4 8 8 15 15 1 1 2 2 4 4 8 8 15 15 1 2 4 8 15 1 2 4 8 15 1 2 4 8 15 1 2 4 8 15 1 2 4 8 15 1 2 4 8 15 1 2 4 8 15 1 2 4 8 15 1 2 4 8 15 1 2 4 8 15 1 2 4 8 15
+ .d2-916818476 .fill-N1{fill:#0A0F25;}
+ .d2-916818476 .fill-N2{fill:#676C7E;}
+ .d2-916818476 .fill-N3{fill:#9499AB;}
+ .d2-916818476 .fill-N4{fill:#CFD2DD;}
+ .d2-916818476 .fill-N5{fill:#DEE1EB;}
+ .d2-916818476 .fill-N6{fill:#EEF1F8;}
+ .d2-916818476 .fill-N7{fill:#FFFFFF;}
+ .d2-916818476 .fill-B1{fill:#0D32B2;}
+ .d2-916818476 .fill-B2{fill:#0D32B2;}
+ .d2-916818476 .fill-B3{fill:#E3E9FD;}
+ .d2-916818476 .fill-B4{fill:#E3E9FD;}
+ .d2-916818476 .fill-B5{fill:#EDF0FD;}
+ .d2-916818476 .fill-B6{fill:#F7F8FE;}
+ .d2-916818476 .fill-AA2{fill:#4A6FF3;}
+ .d2-916818476 .fill-AA4{fill:#EDF0FD;}
+ .d2-916818476 .fill-AA5{fill:#F7F8FE;}
+ .d2-916818476 .fill-AB4{fill:#EDF0FD;}
+ .d2-916818476 .fill-AB5{fill:#F7F8FE;}
+ .d2-916818476 .stroke-N1{stroke:#0A0F25;}
+ .d2-916818476 .stroke-N2{stroke:#676C7E;}
+ .d2-916818476 .stroke-N3{stroke:#9499AB;}
+ .d2-916818476 .stroke-N4{stroke:#CFD2DD;}
+ .d2-916818476 .stroke-N5{stroke:#DEE1EB;}
+ .d2-916818476 .stroke-N6{stroke:#EEF1F8;}
+ .d2-916818476 .stroke-N7{stroke:#FFFFFF;}
+ .d2-916818476 .stroke-B1{stroke:#0D32B2;}
+ .d2-916818476 .stroke-B2{stroke:#0D32B2;}
+ .d2-916818476 .stroke-B3{stroke:#E3E9FD;}
+ .d2-916818476 .stroke-B4{stroke:#E3E9FD;}
+ .d2-916818476 .stroke-B5{stroke:#EDF0FD;}
+ .d2-916818476 .stroke-B6{stroke:#F7F8FE;}
+ .d2-916818476 .stroke-AA2{stroke:#4A6FF3;}
+ .d2-916818476 .stroke-AA4{stroke:#EDF0FD;}
+ .d2-916818476 .stroke-AA5{stroke:#F7F8FE;}
+ .d2-916818476 .stroke-AB4{stroke:#EDF0FD;}
+ .d2-916818476 .stroke-AB5{stroke:#F7F8FE;}
+ .d2-916818476 .background-color-N1{background-color:#0A0F25;}
+ .d2-916818476 .background-color-N2{background-color:#676C7E;}
+ .d2-916818476 .background-color-N3{background-color:#9499AB;}
+ .d2-916818476 .background-color-N4{background-color:#CFD2DD;}
+ .d2-916818476 .background-color-N5{background-color:#DEE1EB;}
+ .d2-916818476 .background-color-N6{background-color:#EEF1F8;}
+ .d2-916818476 .background-color-N7{background-color:#FFFFFF;}
+ .d2-916818476 .background-color-B1{background-color:#0D32B2;}
+ .d2-916818476 .background-color-B2{background-color:#0D32B2;}
+ .d2-916818476 .background-color-B3{background-color:#E3E9FD;}
+ .d2-916818476 .background-color-B4{background-color:#E3E9FD;}
+ .d2-916818476 .background-color-B5{background-color:#EDF0FD;}
+ .d2-916818476 .background-color-B6{background-color:#F7F8FE;}
+ .d2-916818476 .background-color-AA2{background-color:#4A6FF3;}
+ .d2-916818476 .background-color-AA4{background-color:#EDF0FD;}
+ .d2-916818476 .background-color-AA5{background-color:#F7F8FE;}
+ .d2-916818476 .background-color-AB4{background-color:#EDF0FD;}
+ .d2-916818476 .background-color-AB5{background-color:#F7F8FE;}
+ .d2-916818476 .color-N1{color:#0A0F25;}
+ .d2-916818476 .color-N2{color:#676C7E;}
+ .d2-916818476 .color-N3{color:#9499AB;}
+ .d2-916818476 .color-N4{color:#CFD2DD;}
+ .d2-916818476 .color-N5{color:#DEE1EB;}
+ .d2-916818476 .color-N6{color:#EEF1F8;}
+ .d2-916818476 .color-N7{color:#FFFFFF;}
+ .d2-916818476 .color-B1{color:#0D32B2;}
+ .d2-916818476 .color-B2{color:#0D32B2;}
+ .d2-916818476 .color-B3{color:#E3E9FD;}
+ .d2-916818476 .color-B4{color:#E3E9FD;}
+ .d2-916818476 .color-B5{color:#EDF0FD;}
+ .d2-916818476 .color-B6{color:#F7F8FE;}
+ .d2-916818476 .color-AA2{color:#4A6FF3;}
+ .d2-916818476 .color-AA4{color:#EDF0FD;}
+ .d2-916818476 .color-AA5{color:#F7F8FE;}
+ .d2-916818476 .color-AB4{color:#EDF0FD;}
+ .d2-916818476 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>default line arrow diamond filled diamond circle filled circle cf one cf one required cf many cf many required 1 1 2 2 4 4 8 8 15 15 1 1 2 2 4 4 8 8 15 15 1 1 2 2 4 4 8 8 15 15 1 1 2 2 4 4 8 8 15 15 1 1 2 2 4 4 8 8 15 15 1 1 2 2 4 4 8 8 15 15 1 1 2 2 4 4 8 8 15 15 1 1 2 2 4 4 8 8 15 15 1 1 2 2 4 4 8 8 15 15 1 1 2 2 4 4 8 8 15 15 1 1 2 2 4 4 8 8 15 15 1 2 4 8 15 1 2 4 8 15 1 2 4 8 15 1 2 4 8 15 1 2 4 8 15 1 2 4 8 15 1 2 4 8 15 1 2 4 8 15 1 2 4 8 15 1 2 4 8 15 1 2 4 8 15
diff --git a/e2etests/testdata/stable/arrowhead_scaling/elk/sketch.exp.svg b/e2etests/testdata/stable/arrowhead_scaling/elk/sketch.exp.svg
index 240a59bf2..c9c007d71 100644
--- a/e2etests/testdata/stable/arrowhead_scaling/elk/sketch.exp.svg
+++ b/e2etests/testdata/stable/arrowhead_scaling/elk/sketch.exp.svg
@@ -1,24 +1,24 @@
-a b c d e f g h i j k l m n o
+ .d2-2291258294 .fill-N1{fill:#0A0F25;}
+ .d2-2291258294 .fill-N2{fill:#676C7E;}
+ .d2-2291258294 .fill-N3{fill:#9499AB;}
+ .d2-2291258294 .fill-N4{fill:#CFD2DD;}
+ .d2-2291258294 .fill-N5{fill:#DEE1EB;}
+ .d2-2291258294 .fill-N6{fill:#EEF1F8;}
+ .d2-2291258294 .fill-N7{fill:#FFFFFF;}
+ .d2-2291258294 .fill-B1{fill:#0D32B2;}
+ .d2-2291258294 .fill-B2{fill:#0D32B2;}
+ .d2-2291258294 .fill-B3{fill:#E3E9FD;}
+ .d2-2291258294 .fill-B4{fill:#E3E9FD;}
+ .d2-2291258294 .fill-B5{fill:#EDF0FD;}
+ .d2-2291258294 .fill-B6{fill:#F7F8FE;}
+ .d2-2291258294 .fill-AA2{fill:#4A6FF3;}
+ .d2-2291258294 .fill-AA4{fill:#EDF0FD;}
+ .d2-2291258294 .fill-AA5{fill:#F7F8FE;}
+ .d2-2291258294 .fill-AB4{fill:#EDF0FD;}
+ .d2-2291258294 .fill-AB5{fill:#F7F8FE;}
+ .d2-2291258294 .stroke-N1{stroke:#0A0F25;}
+ .d2-2291258294 .stroke-N2{stroke:#676C7E;}
+ .d2-2291258294 .stroke-N3{stroke:#9499AB;}
+ .d2-2291258294 .stroke-N4{stroke:#CFD2DD;}
+ .d2-2291258294 .stroke-N5{stroke:#DEE1EB;}
+ .d2-2291258294 .stroke-N6{stroke:#EEF1F8;}
+ .d2-2291258294 .stroke-N7{stroke:#FFFFFF;}
+ .d2-2291258294 .stroke-B1{stroke:#0D32B2;}
+ .d2-2291258294 .stroke-B2{stroke:#0D32B2;}
+ .d2-2291258294 .stroke-B3{stroke:#E3E9FD;}
+ .d2-2291258294 .stroke-B4{stroke:#E3E9FD;}
+ .d2-2291258294 .stroke-B5{stroke:#EDF0FD;}
+ .d2-2291258294 .stroke-B6{stroke:#F7F8FE;}
+ .d2-2291258294 .stroke-AA2{stroke:#4A6FF3;}
+ .d2-2291258294 .stroke-AA4{stroke:#EDF0FD;}
+ .d2-2291258294 .stroke-AA5{stroke:#F7F8FE;}
+ .d2-2291258294 .stroke-AB4{stroke:#EDF0FD;}
+ .d2-2291258294 .stroke-AB5{stroke:#F7F8FE;}
+ .d2-2291258294 .background-color-N1{background-color:#0A0F25;}
+ .d2-2291258294 .background-color-N2{background-color:#676C7E;}
+ .d2-2291258294 .background-color-N3{background-color:#9499AB;}
+ .d2-2291258294 .background-color-N4{background-color:#CFD2DD;}
+ .d2-2291258294 .background-color-N5{background-color:#DEE1EB;}
+ .d2-2291258294 .background-color-N6{background-color:#EEF1F8;}
+ .d2-2291258294 .background-color-N7{background-color:#FFFFFF;}
+ .d2-2291258294 .background-color-B1{background-color:#0D32B2;}
+ .d2-2291258294 .background-color-B2{background-color:#0D32B2;}
+ .d2-2291258294 .background-color-B3{background-color:#E3E9FD;}
+ .d2-2291258294 .background-color-B4{background-color:#E3E9FD;}
+ .d2-2291258294 .background-color-B5{background-color:#EDF0FD;}
+ .d2-2291258294 .background-color-B6{background-color:#F7F8FE;}
+ .d2-2291258294 .background-color-AA2{background-color:#4A6FF3;}
+ .d2-2291258294 .background-color-AA4{background-color:#EDF0FD;}
+ .d2-2291258294 .background-color-AA5{background-color:#F7F8FE;}
+ .d2-2291258294 .background-color-AB4{background-color:#EDF0FD;}
+ .d2-2291258294 .background-color-AB5{background-color:#F7F8FE;}
+ .d2-2291258294 .color-N1{color:#0A0F25;}
+ .d2-2291258294 .color-N2{color:#676C7E;}
+ .d2-2291258294 .color-N3{color:#9499AB;}
+ .d2-2291258294 .color-N4{color:#CFD2DD;}
+ .d2-2291258294 .color-N5{color:#DEE1EB;}
+ .d2-2291258294 .color-N6{color:#EEF1F8;}
+ .d2-2291258294 .color-N7{color:#FFFFFF;}
+ .d2-2291258294 .color-B1{color:#0D32B2;}
+ .d2-2291258294 .color-B2{color:#0D32B2;}
+ .d2-2291258294 .color-B3{color:#E3E9FD;}
+ .d2-2291258294 .color-B4{color:#E3E9FD;}
+ .d2-2291258294 .color-B5{color:#EDF0FD;}
+ .d2-2291258294 .color-B6{color:#F7F8FE;}
+ .d2-2291258294 .color-AA2{color:#4A6FF3;}
+ .d2-2291258294 .color-AA4{color:#EDF0FD;}
+ .d2-2291258294 .color-AA5{color:#F7F8FE;}
+ .d2-2291258294 .color-AB4{color:#EDF0FD;}
+ .d2-2291258294 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>a b c d e f g h i j k l m n o
\ No newline at end of file
diff --git a/e2etests/testdata/stable/binary_tree/elk/board.exp.json b/e2etests/testdata/stable/binary_tree/elk/board.exp.json
index 7b37c0de8..30f1361c5 100644
--- a/e2etests/testdata/stable/binary_tree/elk/board.exp.json
+++ b/e2etests/testdata/stable/binary_tree/elk/board.exp.json
@@ -645,19 +645,19 @@
"labelPercentage": 0,
"route": [
{
- "x": 277.41666666666663,
+ "x": 277.4159851074219,
"y": 78
},
{
- "x": 277.41666666666663,
+ "x": 277.4159851074219,
"y": 118
},
{
- "x": 144.49999999999994,
+ "x": 144.49899291992188,
"y": 118
},
{
- "x": 144.49999999999994,
+ "x": 144.49899291992188,
"y": 158
}
],
@@ -691,19 +691,19 @@
"labelPercentage": 0,
"route": [
{
- "x": 304.0833333333333,
+ "x": 304.0830078125,
"y": 78
},
{
- "x": 304.0833333333333,
+ "x": 304.0830078125,
"y": 118
},
{
- "x": 432.24999999999994,
+ "x": 432.2489929199219,
"y": 118
},
{
- "x": 432.24999999999994,
+ "x": 432.2489929199219,
"y": 158
}
],
@@ -737,11 +737,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 131.16666666666663,
+ "x": 131.16600036621094,
"y": 224
},
{
- "x": 131.16666666666663,
+ "x": 131.16600036621094,
"y": 264
},
{
@@ -783,19 +783,19 @@
"labelPercentage": 0,
"route": [
{
- "x": 157.83333333333326,
+ "x": 157.83299255371094,
"y": 224
},
{
- "x": 157.83333333333326,
+ "x": 157.83299255371094,
"y": 264
},
{
- "x": 214.74999999999994,
+ "x": 214.74899291992188,
"y": 264
},
{
- "x": 214.74999999999994,
+ "x": 214.74899291992188,
"y": 304
}
],
@@ -829,19 +829,19 @@
"labelPercentage": 0,
"route": [
{
- "x": 418.91666666666663,
+ "x": 418.9159851074219,
"y": 224
},
{
- "x": 418.91666666666663,
+ "x": 418.9159851074219,
"y": 264
},
{
- "x": 357.99999999999994,
+ "x": 357.9989929199219,
"y": 264
},
{
- "x": 357.99999999999994,
+ "x": 357.9989929199219,
"y": 304
}
],
@@ -875,19 +875,19 @@
"labelPercentage": 0,
"route": [
{
- "x": 445.5833333333333,
+ "x": 445.5830078125,
"y": 224
},
{
- "x": 445.5833333333333,
+ "x": 445.5830078125,
"y": 264
},
{
- "x": 506.24999999999994,
+ "x": 506.2489929199219,
"y": 264
},
{
- "x": 506.24999999999994,
+ "x": 506.2489929199219,
"y": 304
}
],
@@ -921,11 +921,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 60.666666666666686,
+ "x": 60.66600036621094,
"y": 370
},
{
- "x": 60.666666666666686,
+ "x": 60.66600036621094,
"y": 410
},
{
@@ -967,11 +967,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 87.33333333333331,
+ "x": 87.33300018310547,
"y": 370
},
{
- "x": 87.33333333333331,
+ "x": 87.33300018310547,
"y": 410
},
{
@@ -1013,11 +1013,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 201.41666666666663,
+ "x": 201.41600036621094,
"y": 370
},
{
- "x": 201.41666666666663,
+ "x": 201.41600036621094,
"y": 410
},
{
@@ -1059,19 +1059,19 @@
"labelPercentage": 0,
"route": [
{
- "x": 228.0833333333333,
+ "x": 228.08299255371094,
"y": 370
},
{
- "x": 228.0833333333333,
+ "x": 228.08299255371094,
"y": 410
},
{
- "x": 250.49999999999997,
+ "x": 250.49899291992188,
"y": 410
},
{
- "x": 250.49999999999997,
+ "x": 250.49899291992188,
"y": 450
}
],
@@ -1105,11 +1105,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 344.66666666666663,
+ "x": 344.6659851074219,
"y": 370
},
{
- "x": 344.66666666666663,
+ "x": 344.6659851074219,
"y": 410
},
{
@@ -1151,11 +1151,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 371.33333333333326,
+ "x": 371.3330078125,
"y": 370
},
{
- "x": 371.33333333333326,
+ "x": 371.3330078125,
"y": 410
},
{
@@ -1197,11 +1197,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 492.91666666666663,
+ "x": 492.9159851074219,
"y": 370
},
{
- "x": 492.91666666666663,
+ "x": 492.9159851074219,
"y": 410
},
{
@@ -1243,11 +1243,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 519.5833333333333,
+ "x": 519.5830078125,
"y": 370
},
{
- "x": 519.5833333333333,
+ "x": 519.5830078125,
"y": 410
},
{
diff --git a/e2etests/testdata/stable/binary_tree/elk/sketch.exp.svg b/e2etests/testdata/stable/binary_tree/elk/sketch.exp.svg
index 19dd7fa9b..162e3b4f9 100644
--- a/e2etests/testdata/stable/binary_tree/elk/sketch.exp.svg
+++ b/e2etests/testdata/stable/binary_tree/elk/sketch.exp.svg
@@ -1,10 +1,10 @@
-a b c d e f g h i j k l m n o
+ .d2-1573402079 .fill-N1{fill:#0A0F25;}
+ .d2-1573402079 .fill-N2{fill:#676C7E;}
+ .d2-1573402079 .fill-N3{fill:#9499AB;}
+ .d2-1573402079 .fill-N4{fill:#CFD2DD;}
+ .d2-1573402079 .fill-N5{fill:#DEE1EB;}
+ .d2-1573402079 .fill-N6{fill:#EEF1F8;}
+ .d2-1573402079 .fill-N7{fill:#FFFFFF;}
+ .d2-1573402079 .fill-B1{fill:#0D32B2;}
+ .d2-1573402079 .fill-B2{fill:#0D32B2;}
+ .d2-1573402079 .fill-B3{fill:#E3E9FD;}
+ .d2-1573402079 .fill-B4{fill:#E3E9FD;}
+ .d2-1573402079 .fill-B5{fill:#EDF0FD;}
+ .d2-1573402079 .fill-B6{fill:#F7F8FE;}
+ .d2-1573402079 .fill-AA2{fill:#4A6FF3;}
+ .d2-1573402079 .fill-AA4{fill:#EDF0FD;}
+ .d2-1573402079 .fill-AA5{fill:#F7F8FE;}
+ .d2-1573402079 .fill-AB4{fill:#EDF0FD;}
+ .d2-1573402079 .fill-AB5{fill:#F7F8FE;}
+ .d2-1573402079 .stroke-N1{stroke:#0A0F25;}
+ .d2-1573402079 .stroke-N2{stroke:#676C7E;}
+ .d2-1573402079 .stroke-N3{stroke:#9499AB;}
+ .d2-1573402079 .stroke-N4{stroke:#CFD2DD;}
+ .d2-1573402079 .stroke-N5{stroke:#DEE1EB;}
+ .d2-1573402079 .stroke-N6{stroke:#EEF1F8;}
+ .d2-1573402079 .stroke-N7{stroke:#FFFFFF;}
+ .d2-1573402079 .stroke-B1{stroke:#0D32B2;}
+ .d2-1573402079 .stroke-B2{stroke:#0D32B2;}
+ .d2-1573402079 .stroke-B3{stroke:#E3E9FD;}
+ .d2-1573402079 .stroke-B4{stroke:#E3E9FD;}
+ .d2-1573402079 .stroke-B5{stroke:#EDF0FD;}
+ .d2-1573402079 .stroke-B6{stroke:#F7F8FE;}
+ .d2-1573402079 .stroke-AA2{stroke:#4A6FF3;}
+ .d2-1573402079 .stroke-AA4{stroke:#EDF0FD;}
+ .d2-1573402079 .stroke-AA5{stroke:#F7F8FE;}
+ .d2-1573402079 .stroke-AB4{stroke:#EDF0FD;}
+ .d2-1573402079 .stroke-AB5{stroke:#F7F8FE;}
+ .d2-1573402079 .background-color-N1{background-color:#0A0F25;}
+ .d2-1573402079 .background-color-N2{background-color:#676C7E;}
+ .d2-1573402079 .background-color-N3{background-color:#9499AB;}
+ .d2-1573402079 .background-color-N4{background-color:#CFD2DD;}
+ .d2-1573402079 .background-color-N5{background-color:#DEE1EB;}
+ .d2-1573402079 .background-color-N6{background-color:#EEF1F8;}
+ .d2-1573402079 .background-color-N7{background-color:#FFFFFF;}
+ .d2-1573402079 .background-color-B1{background-color:#0D32B2;}
+ .d2-1573402079 .background-color-B2{background-color:#0D32B2;}
+ .d2-1573402079 .background-color-B3{background-color:#E3E9FD;}
+ .d2-1573402079 .background-color-B4{background-color:#E3E9FD;}
+ .d2-1573402079 .background-color-B5{background-color:#EDF0FD;}
+ .d2-1573402079 .background-color-B6{background-color:#F7F8FE;}
+ .d2-1573402079 .background-color-AA2{background-color:#4A6FF3;}
+ .d2-1573402079 .background-color-AA4{background-color:#EDF0FD;}
+ .d2-1573402079 .background-color-AA5{background-color:#F7F8FE;}
+ .d2-1573402079 .background-color-AB4{background-color:#EDF0FD;}
+ .d2-1573402079 .background-color-AB5{background-color:#F7F8FE;}
+ .d2-1573402079 .color-N1{color:#0A0F25;}
+ .d2-1573402079 .color-N2{color:#676C7E;}
+ .d2-1573402079 .color-N3{color:#9499AB;}
+ .d2-1573402079 .color-N4{color:#CFD2DD;}
+ .d2-1573402079 .color-N5{color:#DEE1EB;}
+ .d2-1573402079 .color-N6{color:#EEF1F8;}
+ .d2-1573402079 .color-N7{color:#FFFFFF;}
+ .d2-1573402079 .color-B1{color:#0D32B2;}
+ .d2-1573402079 .color-B2{color:#0D32B2;}
+ .d2-1573402079 .color-B3{color:#E3E9FD;}
+ .d2-1573402079 .color-B4{color:#E3E9FD;}
+ .d2-1573402079 .color-B5{color:#EDF0FD;}
+ .d2-1573402079 .color-B6{color:#F7F8FE;}
+ .d2-1573402079 .color-AA2{color:#4A6FF3;}
+ .d2-1573402079 .color-AA4{color:#EDF0FD;}
+ .d2-1573402079 .color-AA5{color:#F7F8FE;}
+ .d2-1573402079 .color-AB4{color:#EDF0FD;}
+ .d2-1573402079 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>a b c d e f g h i j k l m n o
\ No newline at end of file
diff --git a/e2etests/testdata/stable/border-radius-pill-shape/dagre/board.exp.json b/e2etests/testdata/stable/border-radius-pill-shape/dagre/board.exp.json
index bc1d49918..dfaebf0f6 100644
--- a/e2etests/testdata/stable/border-radius-pill-shape/dagre/board.exp.json
+++ b/e2etests/testdata/stable/border-radius-pill-shape/dagre/board.exp.json
@@ -8,7 +8,7 @@
"type": "rectangle",
"pos": {
"x": 0,
- "y": 0
+ "y": 8
},
"width": 53,
"height": 66,
@@ -49,7 +49,7 @@
"type": "rectangle",
"pos": {
"x": 113,
- "y": 0
+ "y": 8
},
"width": 54,
"height": 66,
@@ -90,7 +90,7 @@
"type": "rectangle",
"pos": {
"x": 227,
- "y": 0
+ "y": 13
},
"width": 112,
"height": 66,
@@ -130,8 +130,8 @@
"id": "double",
"type": "rectangle",
"pos": {
- "x": 399,
- "y": 0
+ "x": 409,
+ "y": 8
},
"width": 94,
"height": 66,
@@ -171,8 +171,8 @@
"id": "three-dee",
"type": "rectangle",
"pos": {
- "x": 553,
- "y": 0
+ "x": 563,
+ "y": 15
},
"width": 114,
"height": 66,
diff --git a/e2etests/testdata/stable/border-radius-pill-shape/dagre/sketch.exp.svg b/e2etests/testdata/stable/border-radius-pill-shape/dagre/sketch.exp.svg
index 487e5b08b..d425008a1 100644
--- a/e2etests/testdata/stable/border-radius-pill-shape/dagre/sketch.exp.svg
+++ b/e2etests/testdata/stable/border-radius-pill-shape/dagre/sketch.exp.svg
@@ -1,10 +1,10 @@
-x y multiple2 double
-
- three-dee
-
+ .d2-2177508131 .fill-N1{fill:#0A0F25;}
+ .d2-2177508131 .fill-N2{fill:#676C7E;}
+ .d2-2177508131 .fill-N3{fill:#9499AB;}
+ .d2-2177508131 .fill-N4{fill:#CFD2DD;}
+ .d2-2177508131 .fill-N5{fill:#DEE1EB;}
+ .d2-2177508131 .fill-N6{fill:#EEF1F8;}
+ .d2-2177508131 .fill-N7{fill:#FFFFFF;}
+ .d2-2177508131 .fill-B1{fill:#0D32B2;}
+ .d2-2177508131 .fill-B2{fill:#0D32B2;}
+ .d2-2177508131 .fill-B3{fill:#E3E9FD;}
+ .d2-2177508131 .fill-B4{fill:#E3E9FD;}
+ .d2-2177508131 .fill-B5{fill:#EDF0FD;}
+ .d2-2177508131 .fill-B6{fill:#F7F8FE;}
+ .d2-2177508131 .fill-AA2{fill:#4A6FF3;}
+ .d2-2177508131 .fill-AA4{fill:#EDF0FD;}
+ .d2-2177508131 .fill-AA5{fill:#F7F8FE;}
+ .d2-2177508131 .fill-AB4{fill:#EDF0FD;}
+ .d2-2177508131 .fill-AB5{fill:#F7F8FE;}
+ .d2-2177508131 .stroke-N1{stroke:#0A0F25;}
+ .d2-2177508131 .stroke-N2{stroke:#676C7E;}
+ .d2-2177508131 .stroke-N3{stroke:#9499AB;}
+ .d2-2177508131 .stroke-N4{stroke:#CFD2DD;}
+ .d2-2177508131 .stroke-N5{stroke:#DEE1EB;}
+ .d2-2177508131 .stroke-N6{stroke:#EEF1F8;}
+ .d2-2177508131 .stroke-N7{stroke:#FFFFFF;}
+ .d2-2177508131 .stroke-B1{stroke:#0D32B2;}
+ .d2-2177508131 .stroke-B2{stroke:#0D32B2;}
+ .d2-2177508131 .stroke-B3{stroke:#E3E9FD;}
+ .d2-2177508131 .stroke-B4{stroke:#E3E9FD;}
+ .d2-2177508131 .stroke-B5{stroke:#EDF0FD;}
+ .d2-2177508131 .stroke-B6{stroke:#F7F8FE;}
+ .d2-2177508131 .stroke-AA2{stroke:#4A6FF3;}
+ .d2-2177508131 .stroke-AA4{stroke:#EDF0FD;}
+ .d2-2177508131 .stroke-AA5{stroke:#F7F8FE;}
+ .d2-2177508131 .stroke-AB4{stroke:#EDF0FD;}
+ .d2-2177508131 .stroke-AB5{stroke:#F7F8FE;}
+ .d2-2177508131 .background-color-N1{background-color:#0A0F25;}
+ .d2-2177508131 .background-color-N2{background-color:#676C7E;}
+ .d2-2177508131 .background-color-N3{background-color:#9499AB;}
+ .d2-2177508131 .background-color-N4{background-color:#CFD2DD;}
+ .d2-2177508131 .background-color-N5{background-color:#DEE1EB;}
+ .d2-2177508131 .background-color-N6{background-color:#EEF1F8;}
+ .d2-2177508131 .background-color-N7{background-color:#FFFFFF;}
+ .d2-2177508131 .background-color-B1{background-color:#0D32B2;}
+ .d2-2177508131 .background-color-B2{background-color:#0D32B2;}
+ .d2-2177508131 .background-color-B3{background-color:#E3E9FD;}
+ .d2-2177508131 .background-color-B4{background-color:#E3E9FD;}
+ .d2-2177508131 .background-color-B5{background-color:#EDF0FD;}
+ .d2-2177508131 .background-color-B6{background-color:#F7F8FE;}
+ .d2-2177508131 .background-color-AA2{background-color:#4A6FF3;}
+ .d2-2177508131 .background-color-AA4{background-color:#EDF0FD;}
+ .d2-2177508131 .background-color-AA5{background-color:#F7F8FE;}
+ .d2-2177508131 .background-color-AB4{background-color:#EDF0FD;}
+ .d2-2177508131 .background-color-AB5{background-color:#F7F8FE;}
+ .d2-2177508131 .color-N1{color:#0A0F25;}
+ .d2-2177508131 .color-N2{color:#676C7E;}
+ .d2-2177508131 .color-N3{color:#9499AB;}
+ .d2-2177508131 .color-N4{color:#CFD2DD;}
+ .d2-2177508131 .color-N5{color:#DEE1EB;}
+ .d2-2177508131 .color-N6{color:#EEF1F8;}
+ .d2-2177508131 .color-N7{color:#FFFFFF;}
+ .d2-2177508131 .color-B1{color:#0D32B2;}
+ .d2-2177508131 .color-B2{color:#0D32B2;}
+ .d2-2177508131 .color-B3{color:#E3E9FD;}
+ .d2-2177508131 .color-B4{color:#E3E9FD;}
+ .d2-2177508131 .color-B5{color:#EDF0FD;}
+ .d2-2177508131 .color-B6{color:#F7F8FE;}
+ .d2-2177508131 .color-AA2{color:#4A6FF3;}
+ .d2-2177508131 .color-AA4{color:#EDF0FD;}
+ .d2-2177508131 .color-AA5{color:#F7F8FE;}
+ .d2-2177508131 .color-AB4{color:#EDF0FD;}
+ .d2-2177508131 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>x y multiple2 double
+
+ three-dee
+
\ No newline at end of file
diff --git a/e2etests/testdata/stable/border-radius-pill-shape/elk/board.exp.json b/e2etests/testdata/stable/border-radius-pill-shape/elk/board.exp.json
index 2dbef6f05..787c34a0d 100644
--- a/e2etests/testdata/stable/border-radius-pill-shape/elk/board.exp.json
+++ b/e2etests/testdata/stable/border-radius-pill-shape/elk/board.exp.json
@@ -8,7 +8,7 @@
"type": "rectangle",
"pos": {
"x": 12,
- "y": 12
+ "y": 19
},
"width": 53,
"height": 66,
@@ -49,7 +49,7 @@
"type": "rectangle",
"pos": {
"x": 85,
- "y": 12
+ "y": 19
},
"width": 54,
"height": 66,
@@ -90,7 +90,7 @@
"type": "rectangle",
"pos": {
"x": 159,
- "y": 12
+ "y": 24
},
"width": 112,
"height": 66,
@@ -130,8 +130,8 @@
"id": "double",
"type": "rectangle",
"pos": {
- "x": 291,
- "y": 12
+ "x": 301,
+ "y": 19
},
"width": 94,
"height": 66,
@@ -171,8 +171,8 @@
"id": "three-dee",
"type": "rectangle",
"pos": {
- "x": 405,
- "y": 12
+ "x": 415,
+ "y": 27
},
"width": 114,
"height": 66,
diff --git a/e2etests/testdata/stable/border-radius-pill-shape/elk/sketch.exp.svg b/e2etests/testdata/stable/border-radius-pill-shape/elk/sketch.exp.svg
index a21bfc68c..07239e210 100644
--- a/e2etests/testdata/stable/border-radius-pill-shape/elk/sketch.exp.svg
+++ b/e2etests/testdata/stable/border-radius-pill-shape/elk/sketch.exp.svg
@@ -1,10 +1,10 @@
-x y multiple2 double
-
- three-dee
-
+ .d2-3740719058 .fill-N1{fill:#0A0F25;}
+ .d2-3740719058 .fill-N2{fill:#676C7E;}
+ .d2-3740719058 .fill-N3{fill:#9499AB;}
+ .d2-3740719058 .fill-N4{fill:#CFD2DD;}
+ .d2-3740719058 .fill-N5{fill:#DEE1EB;}
+ .d2-3740719058 .fill-N6{fill:#EEF1F8;}
+ .d2-3740719058 .fill-N7{fill:#FFFFFF;}
+ .d2-3740719058 .fill-B1{fill:#0D32B2;}
+ .d2-3740719058 .fill-B2{fill:#0D32B2;}
+ .d2-3740719058 .fill-B3{fill:#E3E9FD;}
+ .d2-3740719058 .fill-B4{fill:#E3E9FD;}
+ .d2-3740719058 .fill-B5{fill:#EDF0FD;}
+ .d2-3740719058 .fill-B6{fill:#F7F8FE;}
+ .d2-3740719058 .fill-AA2{fill:#4A6FF3;}
+ .d2-3740719058 .fill-AA4{fill:#EDF0FD;}
+ .d2-3740719058 .fill-AA5{fill:#F7F8FE;}
+ .d2-3740719058 .fill-AB4{fill:#EDF0FD;}
+ .d2-3740719058 .fill-AB5{fill:#F7F8FE;}
+ .d2-3740719058 .stroke-N1{stroke:#0A0F25;}
+ .d2-3740719058 .stroke-N2{stroke:#676C7E;}
+ .d2-3740719058 .stroke-N3{stroke:#9499AB;}
+ .d2-3740719058 .stroke-N4{stroke:#CFD2DD;}
+ .d2-3740719058 .stroke-N5{stroke:#DEE1EB;}
+ .d2-3740719058 .stroke-N6{stroke:#EEF1F8;}
+ .d2-3740719058 .stroke-N7{stroke:#FFFFFF;}
+ .d2-3740719058 .stroke-B1{stroke:#0D32B2;}
+ .d2-3740719058 .stroke-B2{stroke:#0D32B2;}
+ .d2-3740719058 .stroke-B3{stroke:#E3E9FD;}
+ .d2-3740719058 .stroke-B4{stroke:#E3E9FD;}
+ .d2-3740719058 .stroke-B5{stroke:#EDF0FD;}
+ .d2-3740719058 .stroke-B6{stroke:#F7F8FE;}
+ .d2-3740719058 .stroke-AA2{stroke:#4A6FF3;}
+ .d2-3740719058 .stroke-AA4{stroke:#EDF0FD;}
+ .d2-3740719058 .stroke-AA5{stroke:#F7F8FE;}
+ .d2-3740719058 .stroke-AB4{stroke:#EDF0FD;}
+ .d2-3740719058 .stroke-AB5{stroke:#F7F8FE;}
+ .d2-3740719058 .background-color-N1{background-color:#0A0F25;}
+ .d2-3740719058 .background-color-N2{background-color:#676C7E;}
+ .d2-3740719058 .background-color-N3{background-color:#9499AB;}
+ .d2-3740719058 .background-color-N4{background-color:#CFD2DD;}
+ .d2-3740719058 .background-color-N5{background-color:#DEE1EB;}
+ .d2-3740719058 .background-color-N6{background-color:#EEF1F8;}
+ .d2-3740719058 .background-color-N7{background-color:#FFFFFF;}
+ .d2-3740719058 .background-color-B1{background-color:#0D32B2;}
+ .d2-3740719058 .background-color-B2{background-color:#0D32B2;}
+ .d2-3740719058 .background-color-B3{background-color:#E3E9FD;}
+ .d2-3740719058 .background-color-B4{background-color:#E3E9FD;}
+ .d2-3740719058 .background-color-B5{background-color:#EDF0FD;}
+ .d2-3740719058 .background-color-B6{background-color:#F7F8FE;}
+ .d2-3740719058 .background-color-AA2{background-color:#4A6FF3;}
+ .d2-3740719058 .background-color-AA4{background-color:#EDF0FD;}
+ .d2-3740719058 .background-color-AA5{background-color:#F7F8FE;}
+ .d2-3740719058 .background-color-AB4{background-color:#EDF0FD;}
+ .d2-3740719058 .background-color-AB5{background-color:#F7F8FE;}
+ .d2-3740719058 .color-N1{color:#0A0F25;}
+ .d2-3740719058 .color-N2{color:#676C7E;}
+ .d2-3740719058 .color-N3{color:#9499AB;}
+ .d2-3740719058 .color-N4{color:#CFD2DD;}
+ .d2-3740719058 .color-N5{color:#DEE1EB;}
+ .d2-3740719058 .color-N6{color:#EEF1F8;}
+ .d2-3740719058 .color-N7{color:#FFFFFF;}
+ .d2-3740719058 .color-B1{color:#0D32B2;}
+ .d2-3740719058 .color-B2{color:#0D32B2;}
+ .d2-3740719058 .color-B3{color:#E3E9FD;}
+ .d2-3740719058 .color-B4{color:#E3E9FD;}
+ .d2-3740719058 .color-B5{color:#EDF0FD;}
+ .d2-3740719058 .color-B6{color:#F7F8FE;}
+ .d2-3740719058 .color-AA2{color:#4A6FF3;}
+ .d2-3740719058 .color-AA4{color:#EDF0FD;}
+ .d2-3740719058 .color-AA5{color:#F7F8FE;}
+ .d2-3740719058 .color-AB4{color:#EDF0FD;}
+ .d2-3740719058 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>x y multiple2 double
+
+ three-dee
+
\ No newline at end of file
diff --git a/e2etests/testdata/stable/border-radius/dagre/board.exp.json b/e2etests/testdata/stable/border-radius/dagre/board.exp.json
index f7c5e20e4..5ba6f7ec5 100644
--- a/e2etests/testdata/stable/border-radius/dagre/board.exp.json
+++ b/e2etests/testdata/stable/border-radius/dagre/board.exp.json
@@ -8,7 +8,7 @@
"type": "rectangle",
"pos": {
"x": 0,
- "y": 0
+ "y": 8
},
"width": 53,
"height": 66,
@@ -49,7 +49,7 @@
"type": "rectangle",
"pos": {
"x": 113,
- "y": 0
+ "y": 8
},
"width": 54,
"height": 66,
@@ -90,7 +90,7 @@
"type": "rectangle",
"pos": {
"x": 227,
- "y": 0
+ "y": 13
},
"width": 112,
"height": 66,
@@ -130,8 +130,8 @@
"id": "double",
"type": "rectangle",
"pos": {
- "x": 399,
- "y": 0
+ "x": 409,
+ "y": 8
},
"width": 94,
"height": 66,
@@ -171,8 +171,8 @@
"id": "three-dee",
"type": "rectangle",
"pos": {
- "x": 553,
- "y": 0
+ "x": 563,
+ "y": 15
},
"width": 114,
"height": 66,
diff --git a/e2etests/testdata/stable/border-radius/dagre/sketch.exp.svg b/e2etests/testdata/stable/border-radius/dagre/sketch.exp.svg
index 9a1d42ce3..ba608d2e5 100644
--- a/e2etests/testdata/stable/border-radius/dagre/sketch.exp.svg
+++ b/e2etests/testdata/stable/border-radius/dagre/sketch.exp.svg
@@ -1,10 +1,10 @@
-x y multiple2 double
-
- three-dee
-
+ .d2-2986885661 .fill-N1{fill:#0A0F25;}
+ .d2-2986885661 .fill-N2{fill:#676C7E;}
+ .d2-2986885661 .fill-N3{fill:#9499AB;}
+ .d2-2986885661 .fill-N4{fill:#CFD2DD;}
+ .d2-2986885661 .fill-N5{fill:#DEE1EB;}
+ .d2-2986885661 .fill-N6{fill:#EEF1F8;}
+ .d2-2986885661 .fill-N7{fill:#FFFFFF;}
+ .d2-2986885661 .fill-B1{fill:#0D32B2;}
+ .d2-2986885661 .fill-B2{fill:#0D32B2;}
+ .d2-2986885661 .fill-B3{fill:#E3E9FD;}
+ .d2-2986885661 .fill-B4{fill:#E3E9FD;}
+ .d2-2986885661 .fill-B5{fill:#EDF0FD;}
+ .d2-2986885661 .fill-B6{fill:#F7F8FE;}
+ .d2-2986885661 .fill-AA2{fill:#4A6FF3;}
+ .d2-2986885661 .fill-AA4{fill:#EDF0FD;}
+ .d2-2986885661 .fill-AA5{fill:#F7F8FE;}
+ .d2-2986885661 .fill-AB4{fill:#EDF0FD;}
+ .d2-2986885661 .fill-AB5{fill:#F7F8FE;}
+ .d2-2986885661 .stroke-N1{stroke:#0A0F25;}
+ .d2-2986885661 .stroke-N2{stroke:#676C7E;}
+ .d2-2986885661 .stroke-N3{stroke:#9499AB;}
+ .d2-2986885661 .stroke-N4{stroke:#CFD2DD;}
+ .d2-2986885661 .stroke-N5{stroke:#DEE1EB;}
+ .d2-2986885661 .stroke-N6{stroke:#EEF1F8;}
+ .d2-2986885661 .stroke-N7{stroke:#FFFFFF;}
+ .d2-2986885661 .stroke-B1{stroke:#0D32B2;}
+ .d2-2986885661 .stroke-B2{stroke:#0D32B2;}
+ .d2-2986885661 .stroke-B3{stroke:#E3E9FD;}
+ .d2-2986885661 .stroke-B4{stroke:#E3E9FD;}
+ .d2-2986885661 .stroke-B5{stroke:#EDF0FD;}
+ .d2-2986885661 .stroke-B6{stroke:#F7F8FE;}
+ .d2-2986885661 .stroke-AA2{stroke:#4A6FF3;}
+ .d2-2986885661 .stroke-AA4{stroke:#EDF0FD;}
+ .d2-2986885661 .stroke-AA5{stroke:#F7F8FE;}
+ .d2-2986885661 .stroke-AB4{stroke:#EDF0FD;}
+ .d2-2986885661 .stroke-AB5{stroke:#F7F8FE;}
+ .d2-2986885661 .background-color-N1{background-color:#0A0F25;}
+ .d2-2986885661 .background-color-N2{background-color:#676C7E;}
+ .d2-2986885661 .background-color-N3{background-color:#9499AB;}
+ .d2-2986885661 .background-color-N4{background-color:#CFD2DD;}
+ .d2-2986885661 .background-color-N5{background-color:#DEE1EB;}
+ .d2-2986885661 .background-color-N6{background-color:#EEF1F8;}
+ .d2-2986885661 .background-color-N7{background-color:#FFFFFF;}
+ .d2-2986885661 .background-color-B1{background-color:#0D32B2;}
+ .d2-2986885661 .background-color-B2{background-color:#0D32B2;}
+ .d2-2986885661 .background-color-B3{background-color:#E3E9FD;}
+ .d2-2986885661 .background-color-B4{background-color:#E3E9FD;}
+ .d2-2986885661 .background-color-B5{background-color:#EDF0FD;}
+ .d2-2986885661 .background-color-B6{background-color:#F7F8FE;}
+ .d2-2986885661 .background-color-AA2{background-color:#4A6FF3;}
+ .d2-2986885661 .background-color-AA4{background-color:#EDF0FD;}
+ .d2-2986885661 .background-color-AA5{background-color:#F7F8FE;}
+ .d2-2986885661 .background-color-AB4{background-color:#EDF0FD;}
+ .d2-2986885661 .background-color-AB5{background-color:#F7F8FE;}
+ .d2-2986885661 .color-N1{color:#0A0F25;}
+ .d2-2986885661 .color-N2{color:#676C7E;}
+ .d2-2986885661 .color-N3{color:#9499AB;}
+ .d2-2986885661 .color-N4{color:#CFD2DD;}
+ .d2-2986885661 .color-N5{color:#DEE1EB;}
+ .d2-2986885661 .color-N6{color:#EEF1F8;}
+ .d2-2986885661 .color-N7{color:#FFFFFF;}
+ .d2-2986885661 .color-B1{color:#0D32B2;}
+ .d2-2986885661 .color-B2{color:#0D32B2;}
+ .d2-2986885661 .color-B3{color:#E3E9FD;}
+ .d2-2986885661 .color-B4{color:#E3E9FD;}
+ .d2-2986885661 .color-B5{color:#EDF0FD;}
+ .d2-2986885661 .color-B6{color:#F7F8FE;}
+ .d2-2986885661 .color-AA2{color:#4A6FF3;}
+ .d2-2986885661 .color-AA4{color:#EDF0FD;}
+ .d2-2986885661 .color-AA5{color:#F7F8FE;}
+ .d2-2986885661 .color-AB4{color:#EDF0FD;}
+ .d2-2986885661 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>x y multiple2 double
+
+ three-dee
+
\ No newline at end of file
diff --git a/e2etests/testdata/stable/border-radius/elk/board.exp.json b/e2etests/testdata/stable/border-radius/elk/board.exp.json
index df86d116d..71e89da9a 100644
--- a/e2etests/testdata/stable/border-radius/elk/board.exp.json
+++ b/e2etests/testdata/stable/border-radius/elk/board.exp.json
@@ -8,7 +8,7 @@
"type": "rectangle",
"pos": {
"x": 12,
- "y": 12
+ "y": 19
},
"width": 53,
"height": 66,
@@ -49,7 +49,7 @@
"type": "rectangle",
"pos": {
"x": 85,
- "y": 12
+ "y": 19
},
"width": 54,
"height": 66,
@@ -90,7 +90,7 @@
"type": "rectangle",
"pos": {
"x": 159,
- "y": 12
+ "y": 24
},
"width": 112,
"height": 66,
@@ -130,8 +130,8 @@
"id": "double",
"type": "rectangle",
"pos": {
- "x": 291,
- "y": 12
+ "x": 301,
+ "y": 19
},
"width": 94,
"height": 66,
@@ -171,8 +171,8 @@
"id": "three-dee",
"type": "rectangle",
"pos": {
- "x": 405,
- "y": 12
+ "x": 415,
+ "y": 27
},
"width": 114,
"height": 66,
diff --git a/e2etests/testdata/stable/border-radius/elk/sketch.exp.svg b/e2etests/testdata/stable/border-radius/elk/sketch.exp.svg
index b08df544f..9317d9bd1 100644
--- a/e2etests/testdata/stable/border-radius/elk/sketch.exp.svg
+++ b/e2etests/testdata/stable/border-radius/elk/sketch.exp.svg
@@ -1,10 +1,10 @@
-x y multiple2 double
-
- three-dee
-
+ .d2-3148777058 .fill-N1{fill:#0A0F25;}
+ .d2-3148777058 .fill-N2{fill:#676C7E;}
+ .d2-3148777058 .fill-N3{fill:#9499AB;}
+ .d2-3148777058 .fill-N4{fill:#CFD2DD;}
+ .d2-3148777058 .fill-N5{fill:#DEE1EB;}
+ .d2-3148777058 .fill-N6{fill:#EEF1F8;}
+ .d2-3148777058 .fill-N7{fill:#FFFFFF;}
+ .d2-3148777058 .fill-B1{fill:#0D32B2;}
+ .d2-3148777058 .fill-B2{fill:#0D32B2;}
+ .d2-3148777058 .fill-B3{fill:#E3E9FD;}
+ .d2-3148777058 .fill-B4{fill:#E3E9FD;}
+ .d2-3148777058 .fill-B5{fill:#EDF0FD;}
+ .d2-3148777058 .fill-B6{fill:#F7F8FE;}
+ .d2-3148777058 .fill-AA2{fill:#4A6FF3;}
+ .d2-3148777058 .fill-AA4{fill:#EDF0FD;}
+ .d2-3148777058 .fill-AA5{fill:#F7F8FE;}
+ .d2-3148777058 .fill-AB4{fill:#EDF0FD;}
+ .d2-3148777058 .fill-AB5{fill:#F7F8FE;}
+ .d2-3148777058 .stroke-N1{stroke:#0A0F25;}
+ .d2-3148777058 .stroke-N2{stroke:#676C7E;}
+ .d2-3148777058 .stroke-N3{stroke:#9499AB;}
+ .d2-3148777058 .stroke-N4{stroke:#CFD2DD;}
+ .d2-3148777058 .stroke-N5{stroke:#DEE1EB;}
+ .d2-3148777058 .stroke-N6{stroke:#EEF1F8;}
+ .d2-3148777058 .stroke-N7{stroke:#FFFFFF;}
+ .d2-3148777058 .stroke-B1{stroke:#0D32B2;}
+ .d2-3148777058 .stroke-B2{stroke:#0D32B2;}
+ .d2-3148777058 .stroke-B3{stroke:#E3E9FD;}
+ .d2-3148777058 .stroke-B4{stroke:#E3E9FD;}
+ .d2-3148777058 .stroke-B5{stroke:#EDF0FD;}
+ .d2-3148777058 .stroke-B6{stroke:#F7F8FE;}
+ .d2-3148777058 .stroke-AA2{stroke:#4A6FF3;}
+ .d2-3148777058 .stroke-AA4{stroke:#EDF0FD;}
+ .d2-3148777058 .stroke-AA5{stroke:#F7F8FE;}
+ .d2-3148777058 .stroke-AB4{stroke:#EDF0FD;}
+ .d2-3148777058 .stroke-AB5{stroke:#F7F8FE;}
+ .d2-3148777058 .background-color-N1{background-color:#0A0F25;}
+ .d2-3148777058 .background-color-N2{background-color:#676C7E;}
+ .d2-3148777058 .background-color-N3{background-color:#9499AB;}
+ .d2-3148777058 .background-color-N4{background-color:#CFD2DD;}
+ .d2-3148777058 .background-color-N5{background-color:#DEE1EB;}
+ .d2-3148777058 .background-color-N6{background-color:#EEF1F8;}
+ .d2-3148777058 .background-color-N7{background-color:#FFFFFF;}
+ .d2-3148777058 .background-color-B1{background-color:#0D32B2;}
+ .d2-3148777058 .background-color-B2{background-color:#0D32B2;}
+ .d2-3148777058 .background-color-B3{background-color:#E3E9FD;}
+ .d2-3148777058 .background-color-B4{background-color:#E3E9FD;}
+ .d2-3148777058 .background-color-B5{background-color:#EDF0FD;}
+ .d2-3148777058 .background-color-B6{background-color:#F7F8FE;}
+ .d2-3148777058 .background-color-AA2{background-color:#4A6FF3;}
+ .d2-3148777058 .background-color-AA4{background-color:#EDF0FD;}
+ .d2-3148777058 .background-color-AA5{background-color:#F7F8FE;}
+ .d2-3148777058 .background-color-AB4{background-color:#EDF0FD;}
+ .d2-3148777058 .background-color-AB5{background-color:#F7F8FE;}
+ .d2-3148777058 .color-N1{color:#0A0F25;}
+ .d2-3148777058 .color-N2{color:#676C7E;}
+ .d2-3148777058 .color-N3{color:#9499AB;}
+ .d2-3148777058 .color-N4{color:#CFD2DD;}
+ .d2-3148777058 .color-N5{color:#DEE1EB;}
+ .d2-3148777058 .color-N6{color:#EEF1F8;}
+ .d2-3148777058 .color-N7{color:#FFFFFF;}
+ .d2-3148777058 .color-B1{color:#0D32B2;}
+ .d2-3148777058 .color-B2{color:#0D32B2;}
+ .d2-3148777058 .color-B3{color:#E3E9FD;}
+ .d2-3148777058 .color-B4{color:#E3E9FD;}
+ .d2-3148777058 .color-B5{color:#EDF0FD;}
+ .d2-3148777058 .color-B6{color:#F7F8FE;}
+ .d2-3148777058 .color-AA2{color:#4A6FF3;}
+ .d2-3148777058 .color-AA4{color:#EDF0FD;}
+ .d2-3148777058 .color-AA5{color:#F7F8FE;}
+ .d2-3148777058 .color-AB4{color:#EDF0FD;}
+ .d2-3148777058 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>x y multiple2 double
+
+ three-dee
+
\ No newline at end of file
diff --git a/e2etests/testdata/stable/br/dagre/sketch.exp.svg b/e2etests/testdata/stable/br/dagre/sketch.exp.svg
index 0eece9ba1..504734410 100644
--- a/e2etests/testdata/stable/br/dagre/sketch.exp.svg
+++ b/e2etests/testdata/stable/br/dagre/sketch.exp.svg
@@ -1,14 +1,14 @@
-aa bb ll mm nn oo cc ii kk dd gg hh jj ee ff 11 22 33 44 55 66 77 88
+aa bb ll mm nn oo cc ii kk dd gg hh jj ee ff 11 22 33 44 55 66 77 88
diff --git a/e2etests/testdata/stable/chaos2/elk/board.exp.json b/e2etests/testdata/stable/chaos2/elk/board.exp.json
index 5186dc216..f6c711b04 100644
--- a/e2etests/testdata/stable/chaos2/elk/board.exp.json
+++ b/e2etests/testdata/stable/chaos2/elk/board.exp.json
@@ -10,7 +10,7 @@
"x": 12,
"y": 12
},
- "width": 719,
+ "width": 720,
"height": 1946,
"opacity": 1,
"strokeDash": 0,
@@ -650,11 +650,11 @@
"y": 1168
},
{
- "x": 423.16666666666663,
+ "x": 423.1659851074219,
"y": 1168
},
{
- "x": 423.16666666666663,
+ "x": 423.1659851074219,
"y": 1208
}
],
@@ -772,11 +772,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 279.8333333333333,
+ "x": 279.8330078125,
"y": 1842
},
{
- "x": 279.8333333333333,
+ "x": 279.8330078125,
"y": 1802
},
{
@@ -888,11 +888,11 @@
"y": 1752
},
{
- "x": 359.8333333333333,
+ "x": 359.8330078125,
"y": 1752
},
{
- "x": 359.8333333333333,
+ "x": 359.8330078125,
"y": 1842
}
],
@@ -964,11 +964,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 339.8333333333333,
+ "x": 339.8330078125,
"y": 1842
},
{
- "x": 339.8333333333333,
+ "x": 339.8330078125,
"y": 1702
},
{
@@ -988,11 +988,11 @@
"y": 1168
},
{
- "x": 449.8333333333333,
+ "x": 449.8330078125,
"y": 1168
},
{
- "x": 449.8333333333333,
+ "x": 449.8330078125,
"y": 1208
}
],
@@ -1072,19 +1072,19 @@
"labelPercentage": 0,
"route": [
{
- "x": 309.66666666666663,
+ "x": 309.6659851074219,
"y": 1506
},
{
- "x": 309.66666666666663,
+ "x": 309.6659851074219,
"y": 1702
},
{
- "x": 319.8333333333333,
+ "x": 319.8330078125,
"y": 1702
},
{
- "x": 319.8333333333333,
+ "x": 319.8330078125,
"y": 1842
}
],
@@ -1126,11 +1126,11 @@
"y": 1752
},
{
- "x": 299.8333333333333,
+ "x": 299.8330078125,
"y": 1752
},
{
- "x": 299.8333333333333,
+ "x": 299.8330078125,
"y": 1842
}
],
diff --git a/e2etests/testdata/stable/chaos2/elk/sketch.exp.svg b/e2etests/testdata/stable/chaos2/elk/sketch.exp.svg
index e7165a09c..219d1b16a 100644
--- a/e2etests/testdata/stable/chaos2/elk/sketch.exp.svg
+++ b/e2etests/testdata/stable/chaos2/elk/sketch.exp.svg
@@ -1,24 +1,24 @@
-aa bb ll mm nn oo cc ii kk dd gg hh jj ee ff 11 22 33 44 55 66 77 88
-
+aa bb ll mm nn oo cc ii kk dd gg hh jj ee ff 11 22 33 44 55 66 77 88
+
diff --git a/e2etests/testdata/stable/circle_arrowhead/dagre/board.exp.json b/e2etests/testdata/stable/circle_arrowhead/dagre/board.exp.json
index 9e8f9a48b..3b17bb5df 100644
--- a/e2etests/testdata/stable/circle_arrowhead/dagre/board.exp.json
+++ b/e2etests/testdata/stable/circle_arrowhead/dagre/board.exp.json
@@ -199,11 +199,11 @@
},
{
"x": 26.5,
- "y": 114.4
+ "y": 114.4000015258789
},
{
"x": 26.5,
- "y": 138.7
+ "y": 138.6999969482422
},
{
"x": 26.5,
@@ -246,11 +246,11 @@
},
{
"x": 140,
- "y": 114.4
+ "y": 114.4000015258789
},
{
"x": 140,
- "y": 138.7
+ "y": 138.6999969482422
},
{
"x": 140,
diff --git a/e2etests/testdata/stable/circle_arrowhead/dagre/sketch.exp.svg b/e2etests/testdata/stable/circle_arrowhead/dagre/sketch.exp.svg
index 17ae471f7..46fb38607 100644
--- a/e2etests/testdata/stable/circle_arrowhead/dagre/sketch.exp.svg
+++ b/e2etests/testdata/stable/circle_arrowhead/dagre/sketch.exp.svg
@@ -1,17 +1,17 @@
-a b c d circle filled-circle
+ .d2-816870406 .fill-N1{fill:#0A0F25;}
+ .d2-816870406 .fill-N2{fill:#676C7E;}
+ .d2-816870406 .fill-N3{fill:#9499AB;}
+ .d2-816870406 .fill-N4{fill:#CFD2DD;}
+ .d2-816870406 .fill-N5{fill:#DEE1EB;}
+ .d2-816870406 .fill-N6{fill:#EEF1F8;}
+ .d2-816870406 .fill-N7{fill:#FFFFFF;}
+ .d2-816870406 .fill-B1{fill:#0D32B2;}
+ .d2-816870406 .fill-B2{fill:#0D32B2;}
+ .d2-816870406 .fill-B3{fill:#E3E9FD;}
+ .d2-816870406 .fill-B4{fill:#E3E9FD;}
+ .d2-816870406 .fill-B5{fill:#EDF0FD;}
+ .d2-816870406 .fill-B6{fill:#F7F8FE;}
+ .d2-816870406 .fill-AA2{fill:#4A6FF3;}
+ .d2-816870406 .fill-AA4{fill:#EDF0FD;}
+ .d2-816870406 .fill-AA5{fill:#F7F8FE;}
+ .d2-816870406 .fill-AB4{fill:#EDF0FD;}
+ .d2-816870406 .fill-AB5{fill:#F7F8FE;}
+ .d2-816870406 .stroke-N1{stroke:#0A0F25;}
+ .d2-816870406 .stroke-N2{stroke:#676C7E;}
+ .d2-816870406 .stroke-N3{stroke:#9499AB;}
+ .d2-816870406 .stroke-N4{stroke:#CFD2DD;}
+ .d2-816870406 .stroke-N5{stroke:#DEE1EB;}
+ .d2-816870406 .stroke-N6{stroke:#EEF1F8;}
+ .d2-816870406 .stroke-N7{stroke:#FFFFFF;}
+ .d2-816870406 .stroke-B1{stroke:#0D32B2;}
+ .d2-816870406 .stroke-B2{stroke:#0D32B2;}
+ .d2-816870406 .stroke-B3{stroke:#E3E9FD;}
+ .d2-816870406 .stroke-B4{stroke:#E3E9FD;}
+ .d2-816870406 .stroke-B5{stroke:#EDF0FD;}
+ .d2-816870406 .stroke-B6{stroke:#F7F8FE;}
+ .d2-816870406 .stroke-AA2{stroke:#4A6FF3;}
+ .d2-816870406 .stroke-AA4{stroke:#EDF0FD;}
+ .d2-816870406 .stroke-AA5{stroke:#F7F8FE;}
+ .d2-816870406 .stroke-AB4{stroke:#EDF0FD;}
+ .d2-816870406 .stroke-AB5{stroke:#F7F8FE;}
+ .d2-816870406 .background-color-N1{background-color:#0A0F25;}
+ .d2-816870406 .background-color-N2{background-color:#676C7E;}
+ .d2-816870406 .background-color-N3{background-color:#9499AB;}
+ .d2-816870406 .background-color-N4{background-color:#CFD2DD;}
+ .d2-816870406 .background-color-N5{background-color:#DEE1EB;}
+ .d2-816870406 .background-color-N6{background-color:#EEF1F8;}
+ .d2-816870406 .background-color-N7{background-color:#FFFFFF;}
+ .d2-816870406 .background-color-B1{background-color:#0D32B2;}
+ .d2-816870406 .background-color-B2{background-color:#0D32B2;}
+ .d2-816870406 .background-color-B3{background-color:#E3E9FD;}
+ .d2-816870406 .background-color-B4{background-color:#E3E9FD;}
+ .d2-816870406 .background-color-B5{background-color:#EDF0FD;}
+ .d2-816870406 .background-color-B6{background-color:#F7F8FE;}
+ .d2-816870406 .background-color-AA2{background-color:#4A6FF3;}
+ .d2-816870406 .background-color-AA4{background-color:#EDF0FD;}
+ .d2-816870406 .background-color-AA5{background-color:#F7F8FE;}
+ .d2-816870406 .background-color-AB4{background-color:#EDF0FD;}
+ .d2-816870406 .background-color-AB5{background-color:#F7F8FE;}
+ .d2-816870406 .color-N1{color:#0A0F25;}
+ .d2-816870406 .color-N2{color:#676C7E;}
+ .d2-816870406 .color-N3{color:#9499AB;}
+ .d2-816870406 .color-N4{color:#CFD2DD;}
+ .d2-816870406 .color-N5{color:#DEE1EB;}
+ .d2-816870406 .color-N6{color:#EEF1F8;}
+ .d2-816870406 .color-N7{color:#FFFFFF;}
+ .d2-816870406 .color-B1{color:#0D32B2;}
+ .d2-816870406 .color-B2{color:#0D32B2;}
+ .d2-816870406 .color-B3{color:#E3E9FD;}
+ .d2-816870406 .color-B4{color:#E3E9FD;}
+ .d2-816870406 .color-B5{color:#EDF0FD;}
+ .d2-816870406 .color-B6{color:#F7F8FE;}
+ .d2-816870406 .color-AA2{color:#4A6FF3;}
+ .d2-816870406 .color-AA4{color:#EDF0FD;}
+ .d2-816870406 .color-AA5{color:#F7F8FE;}
+ .d2-816870406 .color-AB4{color:#EDF0FD;}
+ .d2-816870406 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>a b c d circle filled-circle
diff --git a/e2etests/testdata/stable/circle_arrowhead/elk/sketch.exp.svg b/e2etests/testdata/stable/circle_arrowhead/elk/sketch.exp.svg
index 524995c56..038e6b9a9 100644
--- a/e2etests/testdata/stable/circle_arrowhead/elk/sketch.exp.svg
+++ b/e2etests/testdata/stable/circle_arrowhead/elk/sketch.exp.svg
@@ -1,17 +1,17 @@
-a b c
+ .d2-1928835809 .fill-N1{fill:#0A0F25;}
+ .d2-1928835809 .fill-N2{fill:#676C7E;}
+ .d2-1928835809 .fill-N3{fill:#9499AB;}
+ .d2-1928835809 .fill-N4{fill:#CFD2DD;}
+ .d2-1928835809 .fill-N5{fill:#DEE1EB;}
+ .d2-1928835809 .fill-N6{fill:#EEF1F8;}
+ .d2-1928835809 .fill-N7{fill:#FFFFFF;}
+ .d2-1928835809 .fill-B1{fill:#0D32B2;}
+ .d2-1928835809 .fill-B2{fill:#0D32B2;}
+ .d2-1928835809 .fill-B3{fill:#E3E9FD;}
+ .d2-1928835809 .fill-B4{fill:#E3E9FD;}
+ .d2-1928835809 .fill-B5{fill:#EDF0FD;}
+ .d2-1928835809 .fill-B6{fill:#F7F8FE;}
+ .d2-1928835809 .fill-AA2{fill:#4A6FF3;}
+ .d2-1928835809 .fill-AA4{fill:#EDF0FD;}
+ .d2-1928835809 .fill-AA5{fill:#F7F8FE;}
+ .d2-1928835809 .fill-AB4{fill:#EDF0FD;}
+ .d2-1928835809 .fill-AB5{fill:#F7F8FE;}
+ .d2-1928835809 .stroke-N1{stroke:#0A0F25;}
+ .d2-1928835809 .stroke-N2{stroke:#676C7E;}
+ .d2-1928835809 .stroke-N3{stroke:#9499AB;}
+ .d2-1928835809 .stroke-N4{stroke:#CFD2DD;}
+ .d2-1928835809 .stroke-N5{stroke:#DEE1EB;}
+ .d2-1928835809 .stroke-N6{stroke:#EEF1F8;}
+ .d2-1928835809 .stroke-N7{stroke:#FFFFFF;}
+ .d2-1928835809 .stroke-B1{stroke:#0D32B2;}
+ .d2-1928835809 .stroke-B2{stroke:#0D32B2;}
+ .d2-1928835809 .stroke-B3{stroke:#E3E9FD;}
+ .d2-1928835809 .stroke-B4{stroke:#E3E9FD;}
+ .d2-1928835809 .stroke-B5{stroke:#EDF0FD;}
+ .d2-1928835809 .stroke-B6{stroke:#F7F8FE;}
+ .d2-1928835809 .stroke-AA2{stroke:#4A6FF3;}
+ .d2-1928835809 .stroke-AA4{stroke:#EDF0FD;}
+ .d2-1928835809 .stroke-AA5{stroke:#F7F8FE;}
+ .d2-1928835809 .stroke-AB4{stroke:#EDF0FD;}
+ .d2-1928835809 .stroke-AB5{stroke:#F7F8FE;}
+ .d2-1928835809 .background-color-N1{background-color:#0A0F25;}
+ .d2-1928835809 .background-color-N2{background-color:#676C7E;}
+ .d2-1928835809 .background-color-N3{background-color:#9499AB;}
+ .d2-1928835809 .background-color-N4{background-color:#CFD2DD;}
+ .d2-1928835809 .background-color-N5{background-color:#DEE1EB;}
+ .d2-1928835809 .background-color-N6{background-color:#EEF1F8;}
+ .d2-1928835809 .background-color-N7{background-color:#FFFFFF;}
+ .d2-1928835809 .background-color-B1{background-color:#0D32B2;}
+ .d2-1928835809 .background-color-B2{background-color:#0D32B2;}
+ .d2-1928835809 .background-color-B3{background-color:#E3E9FD;}
+ .d2-1928835809 .background-color-B4{background-color:#E3E9FD;}
+ .d2-1928835809 .background-color-B5{background-color:#EDF0FD;}
+ .d2-1928835809 .background-color-B6{background-color:#F7F8FE;}
+ .d2-1928835809 .background-color-AA2{background-color:#4A6FF3;}
+ .d2-1928835809 .background-color-AA4{background-color:#EDF0FD;}
+ .d2-1928835809 .background-color-AA5{background-color:#F7F8FE;}
+ .d2-1928835809 .background-color-AB4{background-color:#EDF0FD;}
+ .d2-1928835809 .background-color-AB5{background-color:#F7F8FE;}
+ .d2-1928835809 .color-N1{color:#0A0F25;}
+ .d2-1928835809 .color-N2{color:#676C7E;}
+ .d2-1928835809 .color-N3{color:#9499AB;}
+ .d2-1928835809 .color-N4{color:#CFD2DD;}
+ .d2-1928835809 .color-N5{color:#DEE1EB;}
+ .d2-1928835809 .color-N6{color:#EEF1F8;}
+ .d2-1928835809 .color-N7{color:#FFFFFF;}
+ .d2-1928835809 .color-B1{color:#0D32B2;}
+ .d2-1928835809 .color-B2{color:#0D32B2;}
+ .d2-1928835809 .color-B3{color:#E3E9FD;}
+ .d2-1928835809 .color-B4{color:#E3E9FD;}
+ .d2-1928835809 .color-B5{color:#EDF0FD;}
+ .d2-1928835809 .color-B6{color:#F7F8FE;}
+ .d2-1928835809 .color-AA2{color:#4A6FF3;}
+ .d2-1928835809 .color-AA4{color:#EDF0FD;}
+ .d2-1928835809 .color-AA5{color:#F7F8FE;}
+ .d2-1928835809 .color-AB4{color:#EDF0FD;}
+ .d2-1928835809 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>a b c
\ No newline at end of file
diff --git a/e2etests/testdata/stable/circular_dependency/elk/board.exp.json b/e2etests/testdata/stable/circular_dependency/elk/board.exp.json
index 42f678fba..2fa8fc7c5 100644
--- a/e2etests/testdata/stable/circular_dependency/elk/board.exp.json
+++ b/e2etests/testdata/stable/circular_dependency/elk/board.exp.json
@@ -153,11 +153,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 38.66666666666667,
+ "x": 38.66600036621094,
"y": 78
},
{
- "x": 38.66666666666667,
+ "x": 38.66600036621094,
"y": 208
}
],
@@ -191,11 +191,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 38.66666666666667,
+ "x": 38.66600036621094,
"y": 274
},
{
- "x": 38.66666666666667,
+ "x": 38.66600036621094,
"y": 404
}
],
@@ -229,11 +229,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 65.33333333333334,
+ "x": 65.33300018310547,
"y": 404
},
{
- "x": 65.33333333333334,
+ "x": 65.33300018310547,
"y": 274
}
],
@@ -267,11 +267,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 60.833333333333336,
+ "x": 60.83300018310547,
"y": 208
},
{
- "x": 60.833333333333336,
+ "x": 60.83300018310547,
"y": 78
}
],
diff --git a/e2etests/testdata/stable/circular_dependency/elk/sketch.exp.svg b/e2etests/testdata/stable/circular_dependency/elk/sketch.exp.svg
index fed0b0c8e..3bef396a1 100644
--- a/e2etests/testdata/stable/circular_dependency/elk/sketch.exp.svg
+++ b/e2etests/testdata/stable/circular_dependency/elk/sketch.exp.svg
@@ -1,10 +1,10 @@
-a b c
+ .d2-1119466528 .fill-N1{fill:#0A0F25;}
+ .d2-1119466528 .fill-N2{fill:#676C7E;}
+ .d2-1119466528 .fill-N3{fill:#9499AB;}
+ .d2-1119466528 .fill-N4{fill:#CFD2DD;}
+ .d2-1119466528 .fill-N5{fill:#DEE1EB;}
+ .d2-1119466528 .fill-N6{fill:#EEF1F8;}
+ .d2-1119466528 .fill-N7{fill:#FFFFFF;}
+ .d2-1119466528 .fill-B1{fill:#0D32B2;}
+ .d2-1119466528 .fill-B2{fill:#0D32B2;}
+ .d2-1119466528 .fill-B3{fill:#E3E9FD;}
+ .d2-1119466528 .fill-B4{fill:#E3E9FD;}
+ .d2-1119466528 .fill-B5{fill:#EDF0FD;}
+ .d2-1119466528 .fill-B6{fill:#F7F8FE;}
+ .d2-1119466528 .fill-AA2{fill:#4A6FF3;}
+ .d2-1119466528 .fill-AA4{fill:#EDF0FD;}
+ .d2-1119466528 .fill-AA5{fill:#F7F8FE;}
+ .d2-1119466528 .fill-AB4{fill:#EDF0FD;}
+ .d2-1119466528 .fill-AB5{fill:#F7F8FE;}
+ .d2-1119466528 .stroke-N1{stroke:#0A0F25;}
+ .d2-1119466528 .stroke-N2{stroke:#676C7E;}
+ .d2-1119466528 .stroke-N3{stroke:#9499AB;}
+ .d2-1119466528 .stroke-N4{stroke:#CFD2DD;}
+ .d2-1119466528 .stroke-N5{stroke:#DEE1EB;}
+ .d2-1119466528 .stroke-N6{stroke:#EEF1F8;}
+ .d2-1119466528 .stroke-N7{stroke:#FFFFFF;}
+ .d2-1119466528 .stroke-B1{stroke:#0D32B2;}
+ .d2-1119466528 .stroke-B2{stroke:#0D32B2;}
+ .d2-1119466528 .stroke-B3{stroke:#E3E9FD;}
+ .d2-1119466528 .stroke-B4{stroke:#E3E9FD;}
+ .d2-1119466528 .stroke-B5{stroke:#EDF0FD;}
+ .d2-1119466528 .stroke-B6{stroke:#F7F8FE;}
+ .d2-1119466528 .stroke-AA2{stroke:#4A6FF3;}
+ .d2-1119466528 .stroke-AA4{stroke:#EDF0FD;}
+ .d2-1119466528 .stroke-AA5{stroke:#F7F8FE;}
+ .d2-1119466528 .stroke-AB4{stroke:#EDF0FD;}
+ .d2-1119466528 .stroke-AB5{stroke:#F7F8FE;}
+ .d2-1119466528 .background-color-N1{background-color:#0A0F25;}
+ .d2-1119466528 .background-color-N2{background-color:#676C7E;}
+ .d2-1119466528 .background-color-N3{background-color:#9499AB;}
+ .d2-1119466528 .background-color-N4{background-color:#CFD2DD;}
+ .d2-1119466528 .background-color-N5{background-color:#DEE1EB;}
+ .d2-1119466528 .background-color-N6{background-color:#EEF1F8;}
+ .d2-1119466528 .background-color-N7{background-color:#FFFFFF;}
+ .d2-1119466528 .background-color-B1{background-color:#0D32B2;}
+ .d2-1119466528 .background-color-B2{background-color:#0D32B2;}
+ .d2-1119466528 .background-color-B3{background-color:#E3E9FD;}
+ .d2-1119466528 .background-color-B4{background-color:#E3E9FD;}
+ .d2-1119466528 .background-color-B5{background-color:#EDF0FD;}
+ .d2-1119466528 .background-color-B6{background-color:#F7F8FE;}
+ .d2-1119466528 .background-color-AA2{background-color:#4A6FF3;}
+ .d2-1119466528 .background-color-AA4{background-color:#EDF0FD;}
+ .d2-1119466528 .background-color-AA5{background-color:#F7F8FE;}
+ .d2-1119466528 .background-color-AB4{background-color:#EDF0FD;}
+ .d2-1119466528 .background-color-AB5{background-color:#F7F8FE;}
+ .d2-1119466528 .color-N1{color:#0A0F25;}
+ .d2-1119466528 .color-N2{color:#676C7E;}
+ .d2-1119466528 .color-N3{color:#9499AB;}
+ .d2-1119466528 .color-N4{color:#CFD2DD;}
+ .d2-1119466528 .color-N5{color:#DEE1EB;}
+ .d2-1119466528 .color-N6{color:#EEF1F8;}
+ .d2-1119466528 .color-N7{color:#FFFFFF;}
+ .d2-1119466528 .color-B1{color:#0D32B2;}
+ .d2-1119466528 .color-B2{color:#0D32B2;}
+ .d2-1119466528 .color-B3{color:#E3E9FD;}
+ .d2-1119466528 .color-B4{color:#E3E9FD;}
+ .d2-1119466528 .color-B5{color:#EDF0FD;}
+ .d2-1119466528 .color-B6{color:#F7F8FE;}
+ .d2-1119466528 .color-AA2{color:#4A6FF3;}
+ .d2-1119466528 .color-AA4{color:#EDF0FD;}
+ .d2-1119466528 .color-AA5{color:#F7F8FE;}
+ .d2-1119466528 .color-AB4{color:#EDF0FD;}
+ .d2-1119466528 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>a b c
\ No newline at end of file
diff --git a/e2etests/testdata/stable/class/dagre/sketch.exp.svg b/e2etests/testdata/stable/class/dagre/sketch.exp.svg
index 8bdae63c4..ce82a5450 100644
--- a/e2etests/testdata/stable/class/dagre/sketch.exp.svg
+++ b/e2etests/testdata/stable/class/dagre/sketch.exp.svg
@@ -1,10 +1,10 @@
-* ** then then
+ .d2-1957894710 .fill-N1{fill:#0A0F25;}
+ .d2-1957894710 .fill-N2{fill:#676C7E;}
+ .d2-1957894710 .fill-N3{fill:#9499AB;}
+ .d2-1957894710 .fill-N4{fill:#CFD2DD;}
+ .d2-1957894710 .fill-N5{fill:#DEE1EB;}
+ .d2-1957894710 .fill-N6{fill:#EEF1F8;}
+ .d2-1957894710 .fill-N7{fill:#FFFFFF;}
+ .d2-1957894710 .fill-B1{fill:#0D32B2;}
+ .d2-1957894710 .fill-B2{fill:#0D32B2;}
+ .d2-1957894710 .fill-B3{fill:#E3E9FD;}
+ .d2-1957894710 .fill-B4{fill:#E3E9FD;}
+ .d2-1957894710 .fill-B5{fill:#EDF0FD;}
+ .d2-1957894710 .fill-B6{fill:#F7F8FE;}
+ .d2-1957894710 .fill-AA2{fill:#4A6FF3;}
+ .d2-1957894710 .fill-AA4{fill:#EDF0FD;}
+ .d2-1957894710 .fill-AA5{fill:#F7F8FE;}
+ .d2-1957894710 .fill-AB4{fill:#EDF0FD;}
+ .d2-1957894710 .fill-AB5{fill:#F7F8FE;}
+ .d2-1957894710 .stroke-N1{stroke:#0A0F25;}
+ .d2-1957894710 .stroke-N2{stroke:#676C7E;}
+ .d2-1957894710 .stroke-N3{stroke:#9499AB;}
+ .d2-1957894710 .stroke-N4{stroke:#CFD2DD;}
+ .d2-1957894710 .stroke-N5{stroke:#DEE1EB;}
+ .d2-1957894710 .stroke-N6{stroke:#EEF1F8;}
+ .d2-1957894710 .stroke-N7{stroke:#FFFFFF;}
+ .d2-1957894710 .stroke-B1{stroke:#0D32B2;}
+ .d2-1957894710 .stroke-B2{stroke:#0D32B2;}
+ .d2-1957894710 .stroke-B3{stroke:#E3E9FD;}
+ .d2-1957894710 .stroke-B4{stroke:#E3E9FD;}
+ .d2-1957894710 .stroke-B5{stroke:#EDF0FD;}
+ .d2-1957894710 .stroke-B6{stroke:#F7F8FE;}
+ .d2-1957894710 .stroke-AA2{stroke:#4A6FF3;}
+ .d2-1957894710 .stroke-AA4{stroke:#EDF0FD;}
+ .d2-1957894710 .stroke-AA5{stroke:#F7F8FE;}
+ .d2-1957894710 .stroke-AB4{stroke:#EDF0FD;}
+ .d2-1957894710 .stroke-AB5{stroke:#F7F8FE;}
+ .d2-1957894710 .background-color-N1{background-color:#0A0F25;}
+ .d2-1957894710 .background-color-N2{background-color:#676C7E;}
+ .d2-1957894710 .background-color-N3{background-color:#9499AB;}
+ .d2-1957894710 .background-color-N4{background-color:#CFD2DD;}
+ .d2-1957894710 .background-color-N5{background-color:#DEE1EB;}
+ .d2-1957894710 .background-color-N6{background-color:#EEF1F8;}
+ .d2-1957894710 .background-color-N7{background-color:#FFFFFF;}
+ .d2-1957894710 .background-color-B1{background-color:#0D32B2;}
+ .d2-1957894710 .background-color-B2{background-color:#0D32B2;}
+ .d2-1957894710 .background-color-B3{background-color:#E3E9FD;}
+ .d2-1957894710 .background-color-B4{background-color:#E3E9FD;}
+ .d2-1957894710 .background-color-B5{background-color:#EDF0FD;}
+ .d2-1957894710 .background-color-B6{background-color:#F7F8FE;}
+ .d2-1957894710 .background-color-AA2{background-color:#4A6FF3;}
+ .d2-1957894710 .background-color-AA4{background-color:#EDF0FD;}
+ .d2-1957894710 .background-color-AA5{background-color:#F7F8FE;}
+ .d2-1957894710 .background-color-AB4{background-color:#EDF0FD;}
+ .d2-1957894710 .background-color-AB5{background-color:#F7F8FE;}
+ .d2-1957894710 .color-N1{color:#0A0F25;}
+ .d2-1957894710 .color-N2{color:#676C7E;}
+ .d2-1957894710 .color-N3{color:#9499AB;}
+ .d2-1957894710 .color-N4{color:#CFD2DD;}
+ .d2-1957894710 .color-N5{color:#DEE1EB;}
+ .d2-1957894710 .color-N6{color:#EEF1F8;}
+ .d2-1957894710 .color-N7{color:#FFFFFF;}
+ .d2-1957894710 .color-B1{color:#0D32B2;}
+ .d2-1957894710 .color-B2{color:#0D32B2;}
+ .d2-1957894710 .color-B3{color:#E3E9FD;}
+ .d2-1957894710 .color-B4{color:#E3E9FD;}
+ .d2-1957894710 .color-B5{color:#EDF0FD;}
+ .d2-1957894710 .color-B6{color:#F7F8FE;}
+ .d2-1957894710 .color-AA2{color:#4A6FF3;}
+ .d2-1957894710 .color-AA4{color:#EDF0FD;}
+ .d2-1957894710 .color-AA5{color:#F7F8FE;}
+ .d2-1957894710 .color-AB4{color:#EDF0FD;}
+ .d2-1957894710 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>* ** then then
diff --git a/e2etests/testdata/stable/classes/elk/sketch.exp.svg b/e2etests/testdata/stable/classes/elk/sketch.exp.svg
index 2df2db270..fc9be5172 100644
--- a/e2etests/testdata/stable/classes/elk/sketch.exp.svg
+++ b/e2etests/testdata/stable/classes/elk/sketch.exp.svg
@@ -1,17 +1,17 @@
-a c f b d h g
+ .d2-3384412117 .fill-N1{fill:#0A0F25;}
+ .d2-3384412117 .fill-N2{fill:#676C7E;}
+ .d2-3384412117 .fill-N3{fill:#9499AB;}
+ .d2-3384412117 .fill-N4{fill:#CFD2DD;}
+ .d2-3384412117 .fill-N5{fill:#DEE1EB;}
+ .d2-3384412117 .fill-N6{fill:#EEF1F8;}
+ .d2-3384412117 .fill-N7{fill:#FFFFFF;}
+ .d2-3384412117 .fill-B1{fill:#0D32B2;}
+ .d2-3384412117 .fill-B2{fill:#0D32B2;}
+ .d2-3384412117 .fill-B3{fill:#E3E9FD;}
+ .d2-3384412117 .fill-B4{fill:#E3E9FD;}
+ .d2-3384412117 .fill-B5{fill:#EDF0FD;}
+ .d2-3384412117 .fill-B6{fill:#F7F8FE;}
+ .d2-3384412117 .fill-AA2{fill:#4A6FF3;}
+ .d2-3384412117 .fill-AA4{fill:#EDF0FD;}
+ .d2-3384412117 .fill-AA5{fill:#F7F8FE;}
+ .d2-3384412117 .fill-AB4{fill:#EDF0FD;}
+ .d2-3384412117 .fill-AB5{fill:#F7F8FE;}
+ .d2-3384412117 .stroke-N1{stroke:#0A0F25;}
+ .d2-3384412117 .stroke-N2{stroke:#676C7E;}
+ .d2-3384412117 .stroke-N3{stroke:#9499AB;}
+ .d2-3384412117 .stroke-N4{stroke:#CFD2DD;}
+ .d2-3384412117 .stroke-N5{stroke:#DEE1EB;}
+ .d2-3384412117 .stroke-N6{stroke:#EEF1F8;}
+ .d2-3384412117 .stroke-N7{stroke:#FFFFFF;}
+ .d2-3384412117 .stroke-B1{stroke:#0D32B2;}
+ .d2-3384412117 .stroke-B2{stroke:#0D32B2;}
+ .d2-3384412117 .stroke-B3{stroke:#E3E9FD;}
+ .d2-3384412117 .stroke-B4{stroke:#E3E9FD;}
+ .d2-3384412117 .stroke-B5{stroke:#EDF0FD;}
+ .d2-3384412117 .stroke-B6{stroke:#F7F8FE;}
+ .d2-3384412117 .stroke-AA2{stroke:#4A6FF3;}
+ .d2-3384412117 .stroke-AA4{stroke:#EDF0FD;}
+ .d2-3384412117 .stroke-AA5{stroke:#F7F8FE;}
+ .d2-3384412117 .stroke-AB4{stroke:#EDF0FD;}
+ .d2-3384412117 .stroke-AB5{stroke:#F7F8FE;}
+ .d2-3384412117 .background-color-N1{background-color:#0A0F25;}
+ .d2-3384412117 .background-color-N2{background-color:#676C7E;}
+ .d2-3384412117 .background-color-N3{background-color:#9499AB;}
+ .d2-3384412117 .background-color-N4{background-color:#CFD2DD;}
+ .d2-3384412117 .background-color-N5{background-color:#DEE1EB;}
+ .d2-3384412117 .background-color-N6{background-color:#EEF1F8;}
+ .d2-3384412117 .background-color-N7{background-color:#FFFFFF;}
+ .d2-3384412117 .background-color-B1{background-color:#0D32B2;}
+ .d2-3384412117 .background-color-B2{background-color:#0D32B2;}
+ .d2-3384412117 .background-color-B3{background-color:#E3E9FD;}
+ .d2-3384412117 .background-color-B4{background-color:#E3E9FD;}
+ .d2-3384412117 .background-color-B5{background-color:#EDF0FD;}
+ .d2-3384412117 .background-color-B6{background-color:#F7F8FE;}
+ .d2-3384412117 .background-color-AA2{background-color:#4A6FF3;}
+ .d2-3384412117 .background-color-AA4{background-color:#EDF0FD;}
+ .d2-3384412117 .background-color-AA5{background-color:#F7F8FE;}
+ .d2-3384412117 .background-color-AB4{background-color:#EDF0FD;}
+ .d2-3384412117 .background-color-AB5{background-color:#F7F8FE;}
+ .d2-3384412117 .color-N1{color:#0A0F25;}
+ .d2-3384412117 .color-N2{color:#676C7E;}
+ .d2-3384412117 .color-N3{color:#9499AB;}
+ .d2-3384412117 .color-N4{color:#CFD2DD;}
+ .d2-3384412117 .color-N5{color:#DEE1EB;}
+ .d2-3384412117 .color-N6{color:#EEF1F8;}
+ .d2-3384412117 .color-N7{color:#FFFFFF;}
+ .d2-3384412117 .color-B1{color:#0D32B2;}
+ .d2-3384412117 .color-B2{color:#0D32B2;}
+ .d2-3384412117 .color-B3{color:#E3E9FD;}
+ .d2-3384412117 .color-B4{color:#E3E9FD;}
+ .d2-3384412117 .color-B5{color:#EDF0FD;}
+ .d2-3384412117 .color-B6{color:#F7F8FE;}
+ .d2-3384412117 .color-AA2{color:#4A6FF3;}
+ .d2-3384412117 .color-AA4{color:#EDF0FD;}
+ .d2-3384412117 .color-AA5{color:#F7F8FE;}
+ .d2-3384412117 .color-AB4{color:#EDF0FD;}
+ .d2-3384412117 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>a c f b d h g
\ No newline at end of file
diff --git a/e2etests/testdata/stable/connected_container/elk/sketch.exp.svg b/e2etests/testdata/stable/connected_container/elk/sketch.exp.svg
index 3d079cebb..628ac8564 100644
--- a/e2etests/testdata/stable/connected_container/elk/sketch.exp.svg
+++ b/e2etests/testdata/stable/connected_container/elk/sketch.exp.svg
@@ -1,17 +1,17 @@
-poll the people results unfavorable favorable will of the people
A winning strategy
-
+
\ No newline at end of file
diff --git a/e2etests/testdata/stable/constant_near_title/elk/board.exp.json b/e2etests/testdata/stable/constant_near_title/elk/board.exp.json
index 5f334e2c2..56d22f7ee 100644
--- a/e2etests/testdata/stable/constant_near_title/elk/board.exp.json
+++ b/e2etests/testdata/stable/constant_near_title/elk/board.exp.json
@@ -275,11 +275,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 160.16666666666666,
+ "x": 160.16600036621094,
"y": 78
},
{
- "x": 160.16666666666666,
+ "x": 160.16600036621094,
"y": 118
},
{
@@ -329,11 +329,11 @@
"y": 264
},
{
- "x": 215.66666666666666,
+ "x": 215.66600036621094,
"y": 264
},
{
- "x": 215.66666666666666,
+ "x": 215.66600036621094,
"y": 304
}
],
@@ -367,19 +367,19 @@
"labelPercentage": 0,
"route": [
{
- "x": 259.33333333333337,
+ "x": 259.3330078125,
"y": 304
},
{
- "x": 259.3333333333333,
+ "x": 259.3330078125,
"y": 118
},
{
- "x": 210.16666666666666,
+ "x": 210.16600036621094,
"y": 118
},
{
- "x": 210.16666666666666,
+ "x": 210.16600036621094,
"y": 78
}
],
diff --git a/e2etests/testdata/stable/constant_near_title/elk/sketch.exp.svg b/e2etests/testdata/stable/constant_near_title/elk/sketch.exp.svg
index 20b945a4f..0fa600e3e 100644
--- a/e2etests/testdata/stable/constant_near_title/elk/sketch.exp.svg
+++ b/e2etests/testdata/stable/constant_near_title/elk/sketch.exp.svg
@@ -1,21 +1,21 @@
-poll the people results unfavorable favorable will of the people
A winning strategy
-
+
\ No newline at end of file
diff --git a/e2etests/testdata/stable/container_edges/dagre/board.exp.json b/e2etests/testdata/stable/container_edges/dagre/board.exp.json
index ac99e1eeb..186672dc6 100644
--- a/e2etests/testdata/stable/container_edges/dagre/board.exp.json
+++ b/e2etests/testdata/stable/container_edges/dagre/board.exp.json
@@ -51,7 +51,7 @@
"x": 193,
"y": 207
},
- "width": 176,
+ "width": 177,
"height": 657,
"opacity": 1,
"strokeDash": 0,
@@ -367,7 +367,7 @@
},
{
"x": 302.75,
- "y": 180.1
+ "y": 180.10000610351562
},
{
"x": 302.75,
@@ -405,12 +405,12 @@
"labelPercentage": 0,
"route": [
{
- "x": 280.28614457831327,
+ "x": 280.2860107421875,
"y": 302.5
},
{
- "x": 253.05722891566265,
- "y": 326.1
+ "x": 253.0570068359375,
+ "y": 326.1000061035156
},
{
"x": 246.25,
@@ -425,7 +425,7 @@
"y": 372
},
{
- "x": 219.65,
+ "x": 219.64999389648438,
"y": 453.5
},
{
@@ -468,12 +468,12 @@
"y": 648
},
{
- "x": 203.65,
+ "x": 203.64999389648438,
"y": 688
},
{
- "x": 239.05,
- "y": 712.1
+ "x": 239.0500030517578,
+ "y": 712.0999755859375
},
{
"x": 250.25,
@@ -516,7 +516,7 @@
},
{
"x": 259.5,
- "y": 858.1
+ "y": 858.0999755859375
},
{
"x": 263.5,
@@ -558,11 +558,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 305.9698795180723,
+ "x": 305.968994140625,
"y": 964
},
{
- "x": 321.99397590361446,
+ "x": 321.9930114746094,
"y": 924
},
{
@@ -609,12 +609,12 @@
"y": 713
},
{
- "x": 126.35,
+ "x": 126.3499984741211,
"y": 661
},
{
"x": 109.75,
- "y": 642.1
+ "y": 642.0999755859375
},
{
"x": 109.75,
diff --git a/e2etests/testdata/stable/container_edges/dagre/sketch.exp.svg b/e2etests/testdata/stable/container_edges/dagre/sketch.exp.svg
index 3ab0a8fec..b7dca0b91 100644
--- a/e2etests/testdata/stable/container_edges/dagre/sketch.exp.svg
+++ b/e2etests/testdata/stable/container_edges/dagre/sketch.exp.svg
@@ -1,17 +1,17 @@
-a g d f b h e c
-
+ .d2-3327970682 .fill-N1{fill:#0A0F25;}
+ .d2-3327970682 .fill-N2{fill:#676C7E;}
+ .d2-3327970682 .fill-N3{fill:#9499AB;}
+ .d2-3327970682 .fill-N4{fill:#CFD2DD;}
+ .d2-3327970682 .fill-N5{fill:#DEE1EB;}
+ .d2-3327970682 .fill-N6{fill:#EEF1F8;}
+ .d2-3327970682 .fill-N7{fill:#FFFFFF;}
+ .d2-3327970682 .fill-B1{fill:#0D32B2;}
+ .d2-3327970682 .fill-B2{fill:#0D32B2;}
+ .d2-3327970682 .fill-B3{fill:#E3E9FD;}
+ .d2-3327970682 .fill-B4{fill:#E3E9FD;}
+ .d2-3327970682 .fill-B5{fill:#EDF0FD;}
+ .d2-3327970682 .fill-B6{fill:#F7F8FE;}
+ .d2-3327970682 .fill-AA2{fill:#4A6FF3;}
+ .d2-3327970682 .fill-AA4{fill:#EDF0FD;}
+ .d2-3327970682 .fill-AA5{fill:#F7F8FE;}
+ .d2-3327970682 .fill-AB4{fill:#EDF0FD;}
+ .d2-3327970682 .fill-AB5{fill:#F7F8FE;}
+ .d2-3327970682 .stroke-N1{stroke:#0A0F25;}
+ .d2-3327970682 .stroke-N2{stroke:#676C7E;}
+ .d2-3327970682 .stroke-N3{stroke:#9499AB;}
+ .d2-3327970682 .stroke-N4{stroke:#CFD2DD;}
+ .d2-3327970682 .stroke-N5{stroke:#DEE1EB;}
+ .d2-3327970682 .stroke-N6{stroke:#EEF1F8;}
+ .d2-3327970682 .stroke-N7{stroke:#FFFFFF;}
+ .d2-3327970682 .stroke-B1{stroke:#0D32B2;}
+ .d2-3327970682 .stroke-B2{stroke:#0D32B2;}
+ .d2-3327970682 .stroke-B3{stroke:#E3E9FD;}
+ .d2-3327970682 .stroke-B4{stroke:#E3E9FD;}
+ .d2-3327970682 .stroke-B5{stroke:#EDF0FD;}
+ .d2-3327970682 .stroke-B6{stroke:#F7F8FE;}
+ .d2-3327970682 .stroke-AA2{stroke:#4A6FF3;}
+ .d2-3327970682 .stroke-AA4{stroke:#EDF0FD;}
+ .d2-3327970682 .stroke-AA5{stroke:#F7F8FE;}
+ .d2-3327970682 .stroke-AB4{stroke:#EDF0FD;}
+ .d2-3327970682 .stroke-AB5{stroke:#F7F8FE;}
+ .d2-3327970682 .background-color-N1{background-color:#0A0F25;}
+ .d2-3327970682 .background-color-N2{background-color:#676C7E;}
+ .d2-3327970682 .background-color-N3{background-color:#9499AB;}
+ .d2-3327970682 .background-color-N4{background-color:#CFD2DD;}
+ .d2-3327970682 .background-color-N5{background-color:#DEE1EB;}
+ .d2-3327970682 .background-color-N6{background-color:#EEF1F8;}
+ .d2-3327970682 .background-color-N7{background-color:#FFFFFF;}
+ .d2-3327970682 .background-color-B1{background-color:#0D32B2;}
+ .d2-3327970682 .background-color-B2{background-color:#0D32B2;}
+ .d2-3327970682 .background-color-B3{background-color:#E3E9FD;}
+ .d2-3327970682 .background-color-B4{background-color:#E3E9FD;}
+ .d2-3327970682 .background-color-B5{background-color:#EDF0FD;}
+ .d2-3327970682 .background-color-B6{background-color:#F7F8FE;}
+ .d2-3327970682 .background-color-AA2{background-color:#4A6FF3;}
+ .d2-3327970682 .background-color-AA4{background-color:#EDF0FD;}
+ .d2-3327970682 .background-color-AA5{background-color:#F7F8FE;}
+ .d2-3327970682 .background-color-AB4{background-color:#EDF0FD;}
+ .d2-3327970682 .background-color-AB5{background-color:#F7F8FE;}
+ .d2-3327970682 .color-N1{color:#0A0F25;}
+ .d2-3327970682 .color-N2{color:#676C7E;}
+ .d2-3327970682 .color-N3{color:#9499AB;}
+ .d2-3327970682 .color-N4{color:#CFD2DD;}
+ .d2-3327970682 .color-N5{color:#DEE1EB;}
+ .d2-3327970682 .color-N6{color:#EEF1F8;}
+ .d2-3327970682 .color-N7{color:#FFFFFF;}
+ .d2-3327970682 .color-B1{color:#0D32B2;}
+ .d2-3327970682 .color-B2{color:#0D32B2;}
+ .d2-3327970682 .color-B3{color:#E3E9FD;}
+ .d2-3327970682 .color-B4{color:#E3E9FD;}
+ .d2-3327970682 .color-B5{color:#EDF0FD;}
+ .d2-3327970682 .color-B6{color:#F7F8FE;}
+ .d2-3327970682 .color-AA2{color:#4A6FF3;}
+ .d2-3327970682 .color-AA4{color:#EDF0FD;}
+ .d2-3327970682 .color-AA5{color:#F7F8FE;}
+ .d2-3327970682 .color-AB4{color:#EDF0FD;}
+ .d2-3327970682 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>a g d f b h e c
+
\ No newline at end of file
diff --git a/e2etests/testdata/stable/container_edges/elk/sketch.exp.svg b/e2etests/testdata/stable/container_edges/elk/sketch.exp.svg
index 9676ebdeb..4a9a8169c 100644
--- a/e2etests/testdata/stable/container_edges/elk/sketch.exp.svg
+++ b/e2etests/testdata/stable/container_edges/elk/sketch.exp.svg
@@ -1,17 +1,17 @@
-Plan Code Build Test Check Release Deploy Operate Monitor ClickUp Git Docker Playwright TruffleHog Github Action AWS Copilot AWS ECS Grafana
+ .d2-627931124 .fill-N1{fill:#0A0F25;}
+ .d2-627931124 .fill-N2{fill:#676C7E;}
+ .d2-627931124 .fill-N3{fill:#9499AB;}
+ .d2-627931124 .fill-N4{fill:#CFD2DD;}
+ .d2-627931124 .fill-N5{fill:#DEE1EB;}
+ .d2-627931124 .fill-N6{fill:#EEF1F8;}
+ .d2-627931124 .fill-N7{fill:#FFFFFF;}
+ .d2-627931124 .fill-B1{fill:#0D32B2;}
+ .d2-627931124 .fill-B2{fill:#0D32B2;}
+ .d2-627931124 .fill-B3{fill:#E3E9FD;}
+ .d2-627931124 .fill-B4{fill:#E3E9FD;}
+ .d2-627931124 .fill-B5{fill:#EDF0FD;}
+ .d2-627931124 .fill-B6{fill:#F7F8FE;}
+ .d2-627931124 .fill-AA2{fill:#4A6FF3;}
+ .d2-627931124 .fill-AA4{fill:#EDF0FD;}
+ .d2-627931124 .fill-AA5{fill:#F7F8FE;}
+ .d2-627931124 .fill-AB4{fill:#EDF0FD;}
+ .d2-627931124 .fill-AB5{fill:#F7F8FE;}
+ .d2-627931124 .stroke-N1{stroke:#0A0F25;}
+ .d2-627931124 .stroke-N2{stroke:#676C7E;}
+ .d2-627931124 .stroke-N3{stroke:#9499AB;}
+ .d2-627931124 .stroke-N4{stroke:#CFD2DD;}
+ .d2-627931124 .stroke-N5{stroke:#DEE1EB;}
+ .d2-627931124 .stroke-N6{stroke:#EEF1F8;}
+ .d2-627931124 .stroke-N7{stroke:#FFFFFF;}
+ .d2-627931124 .stroke-B1{stroke:#0D32B2;}
+ .d2-627931124 .stroke-B2{stroke:#0D32B2;}
+ .d2-627931124 .stroke-B3{stroke:#E3E9FD;}
+ .d2-627931124 .stroke-B4{stroke:#E3E9FD;}
+ .d2-627931124 .stroke-B5{stroke:#EDF0FD;}
+ .d2-627931124 .stroke-B6{stroke:#F7F8FE;}
+ .d2-627931124 .stroke-AA2{stroke:#4A6FF3;}
+ .d2-627931124 .stroke-AA4{stroke:#EDF0FD;}
+ .d2-627931124 .stroke-AA5{stroke:#F7F8FE;}
+ .d2-627931124 .stroke-AB4{stroke:#EDF0FD;}
+ .d2-627931124 .stroke-AB5{stroke:#F7F8FE;}
+ .d2-627931124 .background-color-N1{background-color:#0A0F25;}
+ .d2-627931124 .background-color-N2{background-color:#676C7E;}
+ .d2-627931124 .background-color-N3{background-color:#9499AB;}
+ .d2-627931124 .background-color-N4{background-color:#CFD2DD;}
+ .d2-627931124 .background-color-N5{background-color:#DEE1EB;}
+ .d2-627931124 .background-color-N6{background-color:#EEF1F8;}
+ .d2-627931124 .background-color-N7{background-color:#FFFFFF;}
+ .d2-627931124 .background-color-B1{background-color:#0D32B2;}
+ .d2-627931124 .background-color-B2{background-color:#0D32B2;}
+ .d2-627931124 .background-color-B3{background-color:#E3E9FD;}
+ .d2-627931124 .background-color-B4{background-color:#E3E9FD;}
+ .d2-627931124 .background-color-B5{background-color:#EDF0FD;}
+ .d2-627931124 .background-color-B6{background-color:#F7F8FE;}
+ .d2-627931124 .background-color-AA2{background-color:#4A6FF3;}
+ .d2-627931124 .background-color-AA4{background-color:#EDF0FD;}
+ .d2-627931124 .background-color-AA5{background-color:#F7F8FE;}
+ .d2-627931124 .background-color-AB4{background-color:#EDF0FD;}
+ .d2-627931124 .background-color-AB5{background-color:#F7F8FE;}
+ .d2-627931124 .color-N1{color:#0A0F25;}
+ .d2-627931124 .color-N2{color:#676C7E;}
+ .d2-627931124 .color-N3{color:#9499AB;}
+ .d2-627931124 .color-N4{color:#CFD2DD;}
+ .d2-627931124 .color-N5{color:#DEE1EB;}
+ .d2-627931124 .color-N6{color:#EEF1F8;}
+ .d2-627931124 .color-N7{color:#FFFFFF;}
+ .d2-627931124 .color-B1{color:#0D32B2;}
+ .d2-627931124 .color-B2{color:#0D32B2;}
+ .d2-627931124 .color-B3{color:#E3E9FD;}
+ .d2-627931124 .color-B4{color:#E3E9FD;}
+ .d2-627931124 .color-B5{color:#EDF0FD;}
+ .d2-627931124 .color-B6{color:#F7F8FE;}
+ .d2-627931124 .color-AA2{color:#4A6FF3;}
+ .d2-627931124 .color-AA4{color:#EDF0FD;}
+ .d2-627931124 .color-AA5{color:#F7F8FE;}
+ .d2-627931124 .color-AB4{color:#EDF0FD;}
+ .d2-627931124 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>Plan Code Build Test Check Release Deploy Operate Monitor ClickUp Git Docker Playwright TruffleHog Github Action AWS Copilot AWS ECS Grafana
\ No newline at end of file
diff --git a/e2etests/testdata/stable/dagger_grid/dagre/sketch.exp.svg b/e2etests/testdata/stable/dagger_grid/dagre/sketch.exp.svg
index 9d4db3d0b..26db287a2 100644
--- a/e2etests/testdata/stable/dagger_grid/dagre/sketch.exp.svg
+++ b/e2etests/testdata/stable/dagger_grid/dagre/sketch.exp.svg
@@ -1,10 +1,10 @@
-a b c d e f g h i j k l m n o p q
+ .d2-3512531405 .fill-N1{fill:#0A0F25;}
+ .d2-3512531405 .fill-N2{fill:#676C7E;}
+ .d2-3512531405 .fill-N3{fill:#9499AB;}
+ .d2-3512531405 .fill-N4{fill:#CFD2DD;}
+ .d2-3512531405 .fill-N5{fill:#DEE1EB;}
+ .d2-3512531405 .fill-N6{fill:#EEF1F8;}
+ .d2-3512531405 .fill-N7{fill:#FFFFFF;}
+ .d2-3512531405 .fill-B1{fill:#0D32B2;}
+ .d2-3512531405 .fill-B2{fill:#0D32B2;}
+ .d2-3512531405 .fill-B3{fill:#E3E9FD;}
+ .d2-3512531405 .fill-B4{fill:#E3E9FD;}
+ .d2-3512531405 .fill-B5{fill:#EDF0FD;}
+ .d2-3512531405 .fill-B6{fill:#F7F8FE;}
+ .d2-3512531405 .fill-AA2{fill:#4A6FF3;}
+ .d2-3512531405 .fill-AA4{fill:#EDF0FD;}
+ .d2-3512531405 .fill-AA5{fill:#F7F8FE;}
+ .d2-3512531405 .fill-AB4{fill:#EDF0FD;}
+ .d2-3512531405 .fill-AB5{fill:#F7F8FE;}
+ .d2-3512531405 .stroke-N1{stroke:#0A0F25;}
+ .d2-3512531405 .stroke-N2{stroke:#676C7E;}
+ .d2-3512531405 .stroke-N3{stroke:#9499AB;}
+ .d2-3512531405 .stroke-N4{stroke:#CFD2DD;}
+ .d2-3512531405 .stroke-N5{stroke:#DEE1EB;}
+ .d2-3512531405 .stroke-N6{stroke:#EEF1F8;}
+ .d2-3512531405 .stroke-N7{stroke:#FFFFFF;}
+ .d2-3512531405 .stroke-B1{stroke:#0D32B2;}
+ .d2-3512531405 .stroke-B2{stroke:#0D32B2;}
+ .d2-3512531405 .stroke-B3{stroke:#E3E9FD;}
+ .d2-3512531405 .stroke-B4{stroke:#E3E9FD;}
+ .d2-3512531405 .stroke-B5{stroke:#EDF0FD;}
+ .d2-3512531405 .stroke-B6{stroke:#F7F8FE;}
+ .d2-3512531405 .stroke-AA2{stroke:#4A6FF3;}
+ .d2-3512531405 .stroke-AA4{stroke:#EDF0FD;}
+ .d2-3512531405 .stroke-AA5{stroke:#F7F8FE;}
+ .d2-3512531405 .stroke-AB4{stroke:#EDF0FD;}
+ .d2-3512531405 .stroke-AB5{stroke:#F7F8FE;}
+ .d2-3512531405 .background-color-N1{background-color:#0A0F25;}
+ .d2-3512531405 .background-color-N2{background-color:#676C7E;}
+ .d2-3512531405 .background-color-N3{background-color:#9499AB;}
+ .d2-3512531405 .background-color-N4{background-color:#CFD2DD;}
+ .d2-3512531405 .background-color-N5{background-color:#DEE1EB;}
+ .d2-3512531405 .background-color-N6{background-color:#EEF1F8;}
+ .d2-3512531405 .background-color-N7{background-color:#FFFFFF;}
+ .d2-3512531405 .background-color-B1{background-color:#0D32B2;}
+ .d2-3512531405 .background-color-B2{background-color:#0D32B2;}
+ .d2-3512531405 .background-color-B3{background-color:#E3E9FD;}
+ .d2-3512531405 .background-color-B4{background-color:#E3E9FD;}
+ .d2-3512531405 .background-color-B5{background-color:#EDF0FD;}
+ .d2-3512531405 .background-color-B6{background-color:#F7F8FE;}
+ .d2-3512531405 .background-color-AA2{background-color:#4A6FF3;}
+ .d2-3512531405 .background-color-AA4{background-color:#EDF0FD;}
+ .d2-3512531405 .background-color-AA5{background-color:#F7F8FE;}
+ .d2-3512531405 .background-color-AB4{background-color:#EDF0FD;}
+ .d2-3512531405 .background-color-AB5{background-color:#F7F8FE;}
+ .d2-3512531405 .color-N1{color:#0A0F25;}
+ .d2-3512531405 .color-N2{color:#676C7E;}
+ .d2-3512531405 .color-N3{color:#9499AB;}
+ .d2-3512531405 .color-N4{color:#CFD2DD;}
+ .d2-3512531405 .color-N5{color:#DEE1EB;}
+ .d2-3512531405 .color-N6{color:#EEF1F8;}
+ .d2-3512531405 .color-N7{color:#FFFFFF;}
+ .d2-3512531405 .color-B1{color:#0D32B2;}
+ .d2-3512531405 .color-B2{color:#0D32B2;}
+ .d2-3512531405 .color-B3{color:#E3E9FD;}
+ .d2-3512531405 .color-B4{color:#E3E9FD;}
+ .d2-3512531405 .color-B5{color:#EDF0FD;}
+ .d2-3512531405 .color-B6{color:#F7F8FE;}
+ .d2-3512531405 .color-AA2{color:#4A6FF3;}
+ .d2-3512531405 .color-AA4{color:#EDF0FD;}
+ .d2-3512531405 .color-AA5{color:#F7F8FE;}
+ .d2-3512531405 .color-AB4{color:#EDF0FD;}
+ .d2-3512531405 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>a b c d e f g h i j k l m n o p q
\ No newline at end of file
diff --git a/e2etests/testdata/stable/dense/elk/board.exp.json b/e2etests/testdata/stable/dense/elk/board.exp.json
index 1d439d71c..d1aca654b 100644
--- a/e2etests/testdata/stable/dense/elk/board.exp.json
+++ b/e2etests/testdata/stable/dense/elk/board.exp.json
@@ -727,11 +727,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 192.16666666666669,
+ "x": 192.16600036621094,
"y": 224
},
{
- "x": 192.16666666666669,
+ "x": 192.16600036621094,
"y": 304
}
],
@@ -765,11 +765,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 122.16666666666669,
+ "x": 122.16600036621094,
"y": 224
},
{
- "x": 122.16666666666669,
+ "x": 122.16600036621094,
"y": 304
}
],
@@ -811,11 +811,11 @@
"y": 952
},
{
- "x": 499.3333333333333,
+ "x": 499.3330078125,
"y": 952
},
{
- "x": 499.3333333333333,
+ "x": 499.3330078125,
"y": 1092
}
],
@@ -849,19 +849,19 @@
"labelPercentage": 0,
"route": [
{
- "x": 275.00000000000006,
+ "x": 275,
"y": 862
},
{
- "x": 275.00000000000006,
+ "x": 275,
"y": 1002
},
{
- "x": 469.3333333333333,
+ "x": 469.3330078125,
"y": 1002
},
{
- "x": 469.3333333333333,
+ "x": 469.3330078125,
"y": 1092
}
],
@@ -895,19 +895,19 @@
"labelPercentage": 0,
"route": [
{
- "x": 227.66666666666669,
+ "x": 227.66600036621094,
"y": 370
},
{
- "x": 227.66666666666669,
+ "x": 227.66600036621094,
"y": 656
},
{
- "x": 248.33333333333343,
+ "x": 248.33299255371094,
"y": 656
},
{
- "x": 248.33333333333343,
+ "x": 248.33299255371094,
"y": 796
}
],
@@ -941,19 +941,19 @@
"labelPercentage": 0,
"route": [
{
- "x": 252.16666666666669,
+ "x": 252.16600036621094,
"y": 370
},
{
- "x": 252.16666666666669,
+ "x": 252.16600036621094,
"y": 460
},
{
- "x": 295.6666666666667,
+ "x": 295.6659851074219,
"y": 460
},
{
- "x": 295.6666666666667,
+ "x": 295.6659851074219,
"y": 550
}
],
@@ -987,19 +987,19 @@
"labelPercentage": 0,
"route": [
{
- "x": 295.6666666666667,
+ "x": 295.6659851074219,
"y": 616
},
{
- "x": 295.6666666666667,
+ "x": 295.6659851074219,
"y": 656
},
{
- "x": 275.00000000000006,
+ "x": 275,
"y": 656
},
{
- "x": 275.00000000000006,
+ "x": 275,
"y": 796
}
],
@@ -1079,11 +1079,11 @@
"y": 1198
},
{
- "x": 239.66666666666669,
+ "x": 239.66600036621094,
"y": 1198
},
{
- "x": 239.66666666666669,
+ "x": 239.66600036621094,
"y": 1238
}
],
@@ -1117,19 +1117,19 @@
"labelPercentage": 0,
"route": [
{
- "x": 292.1666666666667,
+ "x": 292.1659851074219,
"y": 370
},
{
- "x": 292.1666666666667,
+ "x": 292.1659851074219,
"y": 410
},
{
- "x": 429.8333333333333,
+ "x": 429.8330078125,
"y": 410
},
{
- "x": 429.8333333333333,
+ "x": 429.8330078125,
"y": 550
}
],
@@ -1163,19 +1163,19 @@
"labelPercentage": 0,
"route": [
{
- "x": 173.66666666666669,
+ "x": 173.66600036621094,
"y": 78
},
{
- "x": 173.66666666666669,
+ "x": 173.66600036621094,
"y": 118
},
{
- "x": 120.66666666666669,
+ "x": 120.66600036621094,
"y": 118
},
{
- "x": 120.66666666666669,
+ "x": 120.66600036621094,
"y": 158
}
],
@@ -1209,11 +1209,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 193.66666666666669,
+ "x": 193.66600036621094,
"y": 78
},
{
- "x": 193.66666666666669,
+ "x": 193.66600036621094,
"y": 158
}
],
@@ -1247,19 +1247,19 @@
"labelPercentage": 0,
"route": [
{
- "x": 262.1666666666667,
+ "x": 262.1659851074219,
"y": 304
},
{
- "x": 262.1666666666667,
+ "x": 262.1659851074219,
"y": 118
},
{
- "x": 213.66666666666669,
+ "x": 213.66600036621094,
"y": 118
},
{
- "x": 213.66666666666669,
+ "x": 213.66600036621094,
"y": 78
}
],
@@ -1331,19 +1331,19 @@
"labelPercentage": 0,
"route": [
{
- "x": 459.8333333333333,
+ "x": 459.8330078125,
"y": 616
},
{
- "x": 459.8333333333333,
+ "x": 459.8330078125,
"y": 706
},
{
- "x": 599.8333333333333,
+ "x": 599.8330078125,
"y": 706
},
{
- "x": 599.8333333333333,
+ "x": 599.8330078125,
"y": 796
}
],
@@ -1377,19 +1377,19 @@
"labelPercentage": 0,
"route": [
{
- "x": 629.8333333333333,
+ "x": 629.8330078125,
"y": 862
},
{
- "x": 629.8333333333333,
+ "x": 629.8330078125,
"y": 952
},
{
- "x": 529.3333333333333,
+ "x": 529.3330078125,
"y": 952
},
{
- "x": 529.3333333333333,
+ "x": 529.3330078125,
"y": 1092
}
],
@@ -1423,19 +1423,19 @@
"labelPercentage": 0,
"route": [
{
- "x": 570.3333333333333,
+ "x": 570.3330078125,
"y": 616
},
{
- "x": 570.3333333333333,
+ "x": 570.3330078125,
"y": 656
},
{
- "x": 629.8333333333333,
+ "x": 629.8330078125,
"y": 656
},
{
- "x": 629.8333333333333,
+ "x": 629.8330078125,
"y": 796
}
],
@@ -1469,19 +1469,19 @@
"labelPercentage": 0,
"route": [
{
- "x": 543.6666666666666,
+ "x": 543.666015625,
"y": 616
},
{
- "x": 543.6666666666666,
+ "x": 543.666015625,
"y": 756
},
{
- "x": 389.3333333333333,
+ "x": 389.3330078125,
"y": 756
},
{
- "x": 389.3333333333333,
+ "x": 389.3330078125,
"y": 1092
}
],
@@ -1515,19 +1515,19 @@
"labelPercentage": 0,
"route": [
{
- "x": 359.3333333333333,
+ "x": 359.3330078125,
"y": 1158
},
{
- "x": 359.3333333333333,
+ "x": 359.3330078125,
"y": 1198
},
{
- "x": 266.3333333333333,
+ "x": 266.3330078125,
"y": 1198
},
{
- "x": 266.3333333333333,
+ "x": 266.3330078125,
"y": 1238
}
],
@@ -1561,19 +1561,19 @@
"labelPercentage": 0,
"route": [
{
- "x": 399.8333333333333,
+ "x": 399.8330078125,
"y": 616
},
{
- "x": 399.8333333333333,
+ "x": 399.8330078125,
"y": 656
},
{
- "x": 356.33333333333337,
+ "x": 356.3330078125,
"y": 656
},
{
- "x": 356.33333333333337,
+ "x": 356.3330078125,
"y": 1092
}
],
@@ -1607,19 +1607,19 @@
"labelPercentage": 0,
"route": [
{
- "x": 248.33333333333343,
+ "x": 248.33299255371094,
"y": 862
},
{
- "x": 248.33333333333343,
+ "x": 248.33299255371094,
"y": 1052
},
{
- "x": 329.3333333333333,
+ "x": 329.3330078125,
"y": 1052
},
{
- "x": 329.3333333333333,
+ "x": 329.3330078125,
"y": 1092
}
],
@@ -1653,11 +1653,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 92.16666666666669,
+ "x": 92.16600036621094,
"y": 370
},
{
- "x": 92.16666666666669,
+ "x": 92.16600036621094,
"y": 410
},
{
@@ -1699,11 +1699,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 659.8333333333333,
+ "x": 659.8330078125,
"y": 616
},
{
- "x": 659.8333333333333,
+ "x": 659.8330078125,
"y": 796
}
],
@@ -1737,11 +1737,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 499.3333333333333,
+ "x": 499.3330078125,
"y": 1158
},
{
- "x": 499.3333333333333,
+ "x": 499.3330078125,
"y": 1238
}
],
diff --git a/e2etests/testdata/stable/dense/elk/sketch.exp.svg b/e2etests/testdata/stable/dense/elk/sketch.exp.svg
index 965c9981d..9d90113b2 100644
--- a/e2etests/testdata/stable/dense/elk/sketch.exp.svg
+++ b/e2etests/testdata/stable/dense/elk/sketch.exp.svg
@@ -1,10 +1,10 @@
-a b c d e f g h i j k l m n o p q
+ .d2-291028394 .fill-N1{fill:#0A0F25;}
+ .d2-291028394 .fill-N2{fill:#676C7E;}
+ .d2-291028394 .fill-N3{fill:#9499AB;}
+ .d2-291028394 .fill-N4{fill:#CFD2DD;}
+ .d2-291028394 .fill-N5{fill:#DEE1EB;}
+ .d2-291028394 .fill-N6{fill:#EEF1F8;}
+ .d2-291028394 .fill-N7{fill:#FFFFFF;}
+ .d2-291028394 .fill-B1{fill:#0D32B2;}
+ .d2-291028394 .fill-B2{fill:#0D32B2;}
+ .d2-291028394 .fill-B3{fill:#E3E9FD;}
+ .d2-291028394 .fill-B4{fill:#E3E9FD;}
+ .d2-291028394 .fill-B5{fill:#EDF0FD;}
+ .d2-291028394 .fill-B6{fill:#F7F8FE;}
+ .d2-291028394 .fill-AA2{fill:#4A6FF3;}
+ .d2-291028394 .fill-AA4{fill:#EDF0FD;}
+ .d2-291028394 .fill-AA5{fill:#F7F8FE;}
+ .d2-291028394 .fill-AB4{fill:#EDF0FD;}
+ .d2-291028394 .fill-AB5{fill:#F7F8FE;}
+ .d2-291028394 .stroke-N1{stroke:#0A0F25;}
+ .d2-291028394 .stroke-N2{stroke:#676C7E;}
+ .d2-291028394 .stroke-N3{stroke:#9499AB;}
+ .d2-291028394 .stroke-N4{stroke:#CFD2DD;}
+ .d2-291028394 .stroke-N5{stroke:#DEE1EB;}
+ .d2-291028394 .stroke-N6{stroke:#EEF1F8;}
+ .d2-291028394 .stroke-N7{stroke:#FFFFFF;}
+ .d2-291028394 .stroke-B1{stroke:#0D32B2;}
+ .d2-291028394 .stroke-B2{stroke:#0D32B2;}
+ .d2-291028394 .stroke-B3{stroke:#E3E9FD;}
+ .d2-291028394 .stroke-B4{stroke:#E3E9FD;}
+ .d2-291028394 .stroke-B5{stroke:#EDF0FD;}
+ .d2-291028394 .stroke-B6{stroke:#F7F8FE;}
+ .d2-291028394 .stroke-AA2{stroke:#4A6FF3;}
+ .d2-291028394 .stroke-AA4{stroke:#EDF0FD;}
+ .d2-291028394 .stroke-AA5{stroke:#F7F8FE;}
+ .d2-291028394 .stroke-AB4{stroke:#EDF0FD;}
+ .d2-291028394 .stroke-AB5{stroke:#F7F8FE;}
+ .d2-291028394 .background-color-N1{background-color:#0A0F25;}
+ .d2-291028394 .background-color-N2{background-color:#676C7E;}
+ .d2-291028394 .background-color-N3{background-color:#9499AB;}
+ .d2-291028394 .background-color-N4{background-color:#CFD2DD;}
+ .d2-291028394 .background-color-N5{background-color:#DEE1EB;}
+ .d2-291028394 .background-color-N6{background-color:#EEF1F8;}
+ .d2-291028394 .background-color-N7{background-color:#FFFFFF;}
+ .d2-291028394 .background-color-B1{background-color:#0D32B2;}
+ .d2-291028394 .background-color-B2{background-color:#0D32B2;}
+ .d2-291028394 .background-color-B3{background-color:#E3E9FD;}
+ .d2-291028394 .background-color-B4{background-color:#E3E9FD;}
+ .d2-291028394 .background-color-B5{background-color:#EDF0FD;}
+ .d2-291028394 .background-color-B6{background-color:#F7F8FE;}
+ .d2-291028394 .background-color-AA2{background-color:#4A6FF3;}
+ .d2-291028394 .background-color-AA4{background-color:#EDF0FD;}
+ .d2-291028394 .background-color-AA5{background-color:#F7F8FE;}
+ .d2-291028394 .background-color-AB4{background-color:#EDF0FD;}
+ .d2-291028394 .background-color-AB5{background-color:#F7F8FE;}
+ .d2-291028394 .color-N1{color:#0A0F25;}
+ .d2-291028394 .color-N2{color:#676C7E;}
+ .d2-291028394 .color-N3{color:#9499AB;}
+ .d2-291028394 .color-N4{color:#CFD2DD;}
+ .d2-291028394 .color-N5{color:#DEE1EB;}
+ .d2-291028394 .color-N6{color:#EEF1F8;}
+ .d2-291028394 .color-N7{color:#FFFFFF;}
+ .d2-291028394 .color-B1{color:#0D32B2;}
+ .d2-291028394 .color-B2{color:#0D32B2;}
+ .d2-291028394 .color-B3{color:#E3E9FD;}
+ .d2-291028394 .color-B4{color:#E3E9FD;}
+ .d2-291028394 .color-B5{color:#EDF0FD;}
+ .d2-291028394 .color-B6{color:#F7F8FE;}
+ .d2-291028394 .color-AA2{color:#4A6FF3;}
+ .d2-291028394 .color-AA4{color:#EDF0FD;}
+ .d2-291028394 .color-AA5{color:#F7F8FE;}
+ .d2-291028394 .color-AB4{color:#EDF0FD;}
+ .d2-291028394 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>a b c d e f g h i j k l m n o p q
\ No newline at end of file
diff --git a/e2etests/testdata/stable/different_subgraphs/dagre/board.exp.json b/e2etests/testdata/stable/different_subgraphs/dagre/board.exp.json
index 02af5b8be..6fd0f433d 100644
--- a/e2etests/testdata/stable/different_subgraphs/dagre/board.exp.json
+++ b/e2etests/testdata/stable/different_subgraphs/dagre/board.exp.json
@@ -502,7 +502,7 @@
"x": 863,
"y": 41
},
- "width": 311,
+ "width": 312,
"height": 623,
"opacity": 1,
"strokeDash": 0,
@@ -933,11 +933,11 @@
"route": [
{
"x": 301,
- "y": 93.20649651972158
+ "y": 93.20600128173828
},
{
- "x": 149.79999999999998,
- "y": 151.44129930394433
+ "x": 149.7989959716797,
+ "y": 151.4409942626953
},
{
"x": 112,
@@ -1027,11 +1027,11 @@
"route": [
{
"x": 354,
- "y": 98.76702508960574
+ "y": 98.76699829101562
},
{
- "x": 444.4,
- "y": 152.55340501792114
+ "x": 444.3999938964844,
+ "y": 152.55299377441406
},
{
"x": 467,
@@ -1120,11 +1120,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 83.57228915662651,
+ "x": 83.5719985961914,
"y": 282
},
{
- "x": 49.1144578313253,
+ "x": 49.11399841308594,
"y": 322
},
{
@@ -1167,11 +1167,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 140.4277108433735,
+ "x": 140.427001953125,
"y": 282
},
{
- "x": 174.8855421686747,
+ "x": 174.88499450683594,
"y": 322
},
{
@@ -1214,11 +1214,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 614.5240963855422,
+ "x": 614.5239868164062,
"y": 116
},
{
- "x": 609.7048192771084,
+ "x": 609.7039794921875,
"y": 156
},
{
@@ -1316,7 +1316,7 @@
"y": 156
},
{
- "x": 773.55,
+ "x": 773.5499877929688,
"y": 176
},
{
@@ -1355,15 +1355,15 @@
"labelPercentage": 0,
"route": [
{
- "x": 649.2138554216867,
+ "x": 649.2130126953125,
"y": 116
},
{
- "x": 686.4427710843373,
+ "x": 686.4420166015625,
"y": 156
},
{
- "x": 704.15,
+ "x": 704.1500244140625,
"y": 176
},
{
@@ -1504,7 +1504,7 @@
"y": 654
},
{
- "x": 1256.65,
+ "x": 1256.6500244140625,
"y": 724
},
{
@@ -1551,12 +1551,12 @@
"y": 704
},
{
- "x": 1077.55,
- "y": 726.1733333333333
+ "x": 1077.550048828125,
+ "y": 726.1729736328125
},
{
"x": 1167.75,
- "y": 774.8666666666667
+ "y": 774.8660278320312
}
],
"isCurve": true,
@@ -1591,11 +1591,11 @@
"route": [
{
"x": 999.75,
- "y": 302.20631970260223
+ "y": 302.20599365234375
},
{
- "x": 967.15,
- "y": 342.44126394052046
+ "x": 967.1500244140625,
+ "y": 342.4410095214844
},
{
"x": 959,
@@ -1732,11 +1732,11 @@
"route": [
{
"x": 1052.75,
- "y": 302.20631970260223
+ "y": 302.20599365234375
},
{
- "x": 1085.35,
- "y": 342.44126394052046
+ "x": 1085.3499755859375,
+ "y": 342.4410095214844
},
{
"x": 1093.5,
diff --git a/e2etests/testdata/stable/different_subgraphs/dagre/sketch.exp.svg b/e2etests/testdata/stable/different_subgraphs/dagre/sketch.exp.svg
index 461ad7744..9e6e5b22c 100644
--- a/e2etests/testdata/stable/different_subgraphs/dagre/sketch.exp.svg
+++ b/e2etests/testdata/stable/different_subgraphs/dagre/sketch.exp.svg
@@ -1,17 +1,17 @@
-a tree and nodes some more many then here you have hierarchy finally another of nesting trees a tree inside hierarchy root
+ .d2-4031819622 .fill-N1{fill:#0A0F25;}
+ .d2-4031819622 .fill-N2{fill:#676C7E;}
+ .d2-4031819622 .fill-N3{fill:#9499AB;}
+ .d2-4031819622 .fill-N4{fill:#CFD2DD;}
+ .d2-4031819622 .fill-N5{fill:#DEE1EB;}
+ .d2-4031819622 .fill-N6{fill:#EEF1F8;}
+ .d2-4031819622 .fill-N7{fill:#FFFFFF;}
+ .d2-4031819622 .fill-B1{fill:#0D32B2;}
+ .d2-4031819622 .fill-B2{fill:#0D32B2;}
+ .d2-4031819622 .fill-B3{fill:#E3E9FD;}
+ .d2-4031819622 .fill-B4{fill:#E3E9FD;}
+ .d2-4031819622 .fill-B5{fill:#EDF0FD;}
+ .d2-4031819622 .fill-B6{fill:#F7F8FE;}
+ .d2-4031819622 .fill-AA2{fill:#4A6FF3;}
+ .d2-4031819622 .fill-AA4{fill:#EDF0FD;}
+ .d2-4031819622 .fill-AA5{fill:#F7F8FE;}
+ .d2-4031819622 .fill-AB4{fill:#EDF0FD;}
+ .d2-4031819622 .fill-AB5{fill:#F7F8FE;}
+ .d2-4031819622 .stroke-N1{stroke:#0A0F25;}
+ .d2-4031819622 .stroke-N2{stroke:#676C7E;}
+ .d2-4031819622 .stroke-N3{stroke:#9499AB;}
+ .d2-4031819622 .stroke-N4{stroke:#CFD2DD;}
+ .d2-4031819622 .stroke-N5{stroke:#DEE1EB;}
+ .d2-4031819622 .stroke-N6{stroke:#EEF1F8;}
+ .d2-4031819622 .stroke-N7{stroke:#FFFFFF;}
+ .d2-4031819622 .stroke-B1{stroke:#0D32B2;}
+ .d2-4031819622 .stroke-B2{stroke:#0D32B2;}
+ .d2-4031819622 .stroke-B3{stroke:#E3E9FD;}
+ .d2-4031819622 .stroke-B4{stroke:#E3E9FD;}
+ .d2-4031819622 .stroke-B5{stroke:#EDF0FD;}
+ .d2-4031819622 .stroke-B6{stroke:#F7F8FE;}
+ .d2-4031819622 .stroke-AA2{stroke:#4A6FF3;}
+ .d2-4031819622 .stroke-AA4{stroke:#EDF0FD;}
+ .d2-4031819622 .stroke-AA5{stroke:#F7F8FE;}
+ .d2-4031819622 .stroke-AB4{stroke:#EDF0FD;}
+ .d2-4031819622 .stroke-AB5{stroke:#F7F8FE;}
+ .d2-4031819622 .background-color-N1{background-color:#0A0F25;}
+ .d2-4031819622 .background-color-N2{background-color:#676C7E;}
+ .d2-4031819622 .background-color-N3{background-color:#9499AB;}
+ .d2-4031819622 .background-color-N4{background-color:#CFD2DD;}
+ .d2-4031819622 .background-color-N5{background-color:#DEE1EB;}
+ .d2-4031819622 .background-color-N6{background-color:#EEF1F8;}
+ .d2-4031819622 .background-color-N7{background-color:#FFFFFF;}
+ .d2-4031819622 .background-color-B1{background-color:#0D32B2;}
+ .d2-4031819622 .background-color-B2{background-color:#0D32B2;}
+ .d2-4031819622 .background-color-B3{background-color:#E3E9FD;}
+ .d2-4031819622 .background-color-B4{background-color:#E3E9FD;}
+ .d2-4031819622 .background-color-B5{background-color:#EDF0FD;}
+ .d2-4031819622 .background-color-B6{background-color:#F7F8FE;}
+ .d2-4031819622 .background-color-AA2{background-color:#4A6FF3;}
+ .d2-4031819622 .background-color-AA4{background-color:#EDF0FD;}
+ .d2-4031819622 .background-color-AA5{background-color:#F7F8FE;}
+ .d2-4031819622 .background-color-AB4{background-color:#EDF0FD;}
+ .d2-4031819622 .background-color-AB5{background-color:#F7F8FE;}
+ .d2-4031819622 .color-N1{color:#0A0F25;}
+ .d2-4031819622 .color-N2{color:#676C7E;}
+ .d2-4031819622 .color-N3{color:#9499AB;}
+ .d2-4031819622 .color-N4{color:#CFD2DD;}
+ .d2-4031819622 .color-N5{color:#DEE1EB;}
+ .d2-4031819622 .color-N6{color:#EEF1F8;}
+ .d2-4031819622 .color-N7{color:#FFFFFF;}
+ .d2-4031819622 .color-B1{color:#0D32B2;}
+ .d2-4031819622 .color-B2{color:#0D32B2;}
+ .d2-4031819622 .color-B3{color:#E3E9FD;}
+ .d2-4031819622 .color-B4{color:#E3E9FD;}
+ .d2-4031819622 .color-B5{color:#EDF0FD;}
+ .d2-4031819622 .color-B6{color:#F7F8FE;}
+ .d2-4031819622 .color-AA2{color:#4A6FF3;}
+ .d2-4031819622 .color-AA4{color:#EDF0FD;}
+ .d2-4031819622 .color-AA5{color:#F7F8FE;}
+ .d2-4031819622 .color-AB4{color:#EDF0FD;}
+ .d2-4031819622 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>a tree and nodes some more many then here you have hierarchy finally another of nesting trees a tree inside hierarchy root
\ No newline at end of file
diff --git a/e2etests/testdata/stable/different_subgraphs/elk/board.exp.json b/e2etests/testdata/stable/different_subgraphs/elk/board.exp.json
index b96584d1d..0256134d0 100644
--- a/e2etests/testdata/stable/different_subgraphs/elk/board.exp.json
+++ b/e2etests/testdata/stable/different_subgraphs/elk/board.exp.json
@@ -502,7 +502,7 @@
"x": 652,
"y": 12
},
- "width": 288,
+ "width": 289,
"height": 584,
"opacity": 1,
"strokeDash": 0,
@@ -1100,11 +1100,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 90.66666666666663,
+ "x": 90.66600036621094,
"y": 742
},
{
- "x": 90.66666666666663,
+ "x": 90.66600036621094,
"y": 782
},
{
@@ -1146,11 +1146,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 117.33333333333337,
+ "x": 117.33300018310547,
"y": 742
},
{
- "x": 117.33333333333337,
+ "x": 117.33300018310547,
"y": 782
},
{
@@ -1192,7 +1192,7 @@
"labelPercentage": 0,
"route": [
{
- "x": 460.50000000000006,
+ "x": 460.5,
"y": 596
},
{
@@ -1268,11 +1268,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 593.8333333333334,
+ "x": 593.8330078125,
"y": 596
},
{
- "x": 593.8333333333334,
+ "x": 593.8330078125,
"y": 676
}
],
@@ -1306,19 +1306,19 @@
"labelPercentage": 0,
"route": [
{
- "x": 487.1666666666667,
+ "x": 487.1659851074219,
"y": 596
},
{
- "x": 487.1666666666667,
+ "x": 487.1659851074219,
"y": 636
},
{
- "x": 556.1666666666667,
+ "x": 556.166015625,
"y": 636
},
{
- "x": 556.1666666666667,
+ "x": 556.166015625,
"y": 676
}
],
@@ -1428,11 +1428,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 1010.3333333333334,
+ "x": 1010.3330078125,
"y": 596
},
{
- "x": 1010.3333333333334,
+ "x": 1010.3330078125,
"y": 676
}
],
@@ -1466,11 +1466,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 845.1666666666667,
+ "x": 845.166015625,
"y": 596
},
{
- "x": 845.1666666666667,
+ "x": 845.166015625,
"y": 636
},
{
@@ -1520,11 +1520,11 @@
"y": 304
},
{
- "x": 759.3333333333334,
+ "x": 759.3330078125,
"y": 304
},
{
- "x": 759.3333333333334,
+ "x": 759.3330078125,
"y": 344
}
],
@@ -1558,11 +1558,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 806.5833333333334,
+ "x": 806.5830078125,
"y": 128
},
{
- "x": 806.5833333333334,
+ "x": 806.5830078125,
"y": 198
}
],
@@ -1596,11 +1596,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 759.3333333333334,
+ "x": 759.3330078125,
"y": 410
},
{
- "x": 759.3333333333334,
+ "x": 759.3330078125,
"y": 480
}
],
@@ -1634,19 +1634,19 @@
"labelPercentage": 0,
"route": [
{
- "x": 819.9166666666667,
+ "x": 819.916015625,
"y": 264
},
{
- "x": 819.9166666666667,
+ "x": 819.916015625,
"y": 304
},
{
- "x": 853.8333333333334,
+ "x": 853.8330078125,
"y": 304
},
{
- "x": 853.8333333333334,
+ "x": 853.8330078125,
"y": 344
}
],
diff --git a/e2etests/testdata/stable/different_subgraphs/elk/sketch.exp.svg b/e2etests/testdata/stable/different_subgraphs/elk/sketch.exp.svg
index b5cc6fe08..c2e274e9a 100644
--- a/e2etests/testdata/stable/different_subgraphs/elk/sketch.exp.svg
+++ b/e2etests/testdata/stable/different_subgraphs/elk/sketch.exp.svg
@@ -1,17 +1,17 @@
-a tree and nodes some more many then here you have hierarchy finally another of nesting trees a tree inside hierarchy root
+ .d2-1676162089 .fill-N1{fill:#0A0F25;}
+ .d2-1676162089 .fill-N2{fill:#676C7E;}
+ .d2-1676162089 .fill-N3{fill:#9499AB;}
+ .d2-1676162089 .fill-N4{fill:#CFD2DD;}
+ .d2-1676162089 .fill-N5{fill:#DEE1EB;}
+ .d2-1676162089 .fill-N6{fill:#EEF1F8;}
+ .d2-1676162089 .fill-N7{fill:#FFFFFF;}
+ .d2-1676162089 .fill-B1{fill:#0D32B2;}
+ .d2-1676162089 .fill-B2{fill:#0D32B2;}
+ .d2-1676162089 .fill-B3{fill:#E3E9FD;}
+ .d2-1676162089 .fill-B4{fill:#E3E9FD;}
+ .d2-1676162089 .fill-B5{fill:#EDF0FD;}
+ .d2-1676162089 .fill-B6{fill:#F7F8FE;}
+ .d2-1676162089 .fill-AA2{fill:#4A6FF3;}
+ .d2-1676162089 .fill-AA4{fill:#EDF0FD;}
+ .d2-1676162089 .fill-AA5{fill:#F7F8FE;}
+ .d2-1676162089 .fill-AB4{fill:#EDF0FD;}
+ .d2-1676162089 .fill-AB5{fill:#F7F8FE;}
+ .d2-1676162089 .stroke-N1{stroke:#0A0F25;}
+ .d2-1676162089 .stroke-N2{stroke:#676C7E;}
+ .d2-1676162089 .stroke-N3{stroke:#9499AB;}
+ .d2-1676162089 .stroke-N4{stroke:#CFD2DD;}
+ .d2-1676162089 .stroke-N5{stroke:#DEE1EB;}
+ .d2-1676162089 .stroke-N6{stroke:#EEF1F8;}
+ .d2-1676162089 .stroke-N7{stroke:#FFFFFF;}
+ .d2-1676162089 .stroke-B1{stroke:#0D32B2;}
+ .d2-1676162089 .stroke-B2{stroke:#0D32B2;}
+ .d2-1676162089 .stroke-B3{stroke:#E3E9FD;}
+ .d2-1676162089 .stroke-B4{stroke:#E3E9FD;}
+ .d2-1676162089 .stroke-B5{stroke:#EDF0FD;}
+ .d2-1676162089 .stroke-B6{stroke:#F7F8FE;}
+ .d2-1676162089 .stroke-AA2{stroke:#4A6FF3;}
+ .d2-1676162089 .stroke-AA4{stroke:#EDF0FD;}
+ .d2-1676162089 .stroke-AA5{stroke:#F7F8FE;}
+ .d2-1676162089 .stroke-AB4{stroke:#EDF0FD;}
+ .d2-1676162089 .stroke-AB5{stroke:#F7F8FE;}
+ .d2-1676162089 .background-color-N1{background-color:#0A0F25;}
+ .d2-1676162089 .background-color-N2{background-color:#676C7E;}
+ .d2-1676162089 .background-color-N3{background-color:#9499AB;}
+ .d2-1676162089 .background-color-N4{background-color:#CFD2DD;}
+ .d2-1676162089 .background-color-N5{background-color:#DEE1EB;}
+ .d2-1676162089 .background-color-N6{background-color:#EEF1F8;}
+ .d2-1676162089 .background-color-N7{background-color:#FFFFFF;}
+ .d2-1676162089 .background-color-B1{background-color:#0D32B2;}
+ .d2-1676162089 .background-color-B2{background-color:#0D32B2;}
+ .d2-1676162089 .background-color-B3{background-color:#E3E9FD;}
+ .d2-1676162089 .background-color-B4{background-color:#E3E9FD;}
+ .d2-1676162089 .background-color-B5{background-color:#EDF0FD;}
+ .d2-1676162089 .background-color-B6{background-color:#F7F8FE;}
+ .d2-1676162089 .background-color-AA2{background-color:#4A6FF3;}
+ .d2-1676162089 .background-color-AA4{background-color:#EDF0FD;}
+ .d2-1676162089 .background-color-AA5{background-color:#F7F8FE;}
+ .d2-1676162089 .background-color-AB4{background-color:#EDF0FD;}
+ .d2-1676162089 .background-color-AB5{background-color:#F7F8FE;}
+ .d2-1676162089 .color-N1{color:#0A0F25;}
+ .d2-1676162089 .color-N2{color:#676C7E;}
+ .d2-1676162089 .color-N3{color:#9499AB;}
+ .d2-1676162089 .color-N4{color:#CFD2DD;}
+ .d2-1676162089 .color-N5{color:#DEE1EB;}
+ .d2-1676162089 .color-N6{color:#EEF1F8;}
+ .d2-1676162089 .color-N7{color:#FFFFFF;}
+ .d2-1676162089 .color-B1{color:#0D32B2;}
+ .d2-1676162089 .color-B2{color:#0D32B2;}
+ .d2-1676162089 .color-B3{color:#E3E9FD;}
+ .d2-1676162089 .color-B4{color:#E3E9FD;}
+ .d2-1676162089 .color-B5{color:#EDF0FD;}
+ .d2-1676162089 .color-B6{color:#F7F8FE;}
+ .d2-1676162089 .color-AA2{color:#4A6FF3;}
+ .d2-1676162089 .color-AA4{color:#EDF0FD;}
+ .d2-1676162089 .color-AA5{color:#F7F8FE;}
+ .d2-1676162089 .color-AB4{color:#EDF0FD;}
+ .d2-1676162089 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>a tree and nodes some more many then here you have hierarchy finally another of nesting trees a tree inside hierarchy root
\ No newline at end of file
diff --git a/e2etests/testdata/stable/direction/dagre/sketch.exp.svg b/e2etests/testdata/stable/direction/dagre/sketch.exp.svg
index 3e9cec158..6e1c676a0 100644
--- a/e2etests/testdata/stable/direction/dagre/sketch.exp.svg
+++ b/e2etests/testdata/stable/direction/dagre/sketch.exp.svg
@@ -1,17 +1,17 @@
-student committee chair committee Apply for appeal Deny. Need more information Accept appeal
+ .d2-2707529254 .fill-N1{fill:#0A0F25;}
+ .d2-2707529254 .fill-N2{fill:#676C7E;}
+ .d2-2707529254 .fill-N3{fill:#9499AB;}
+ .d2-2707529254 .fill-N4{fill:#CFD2DD;}
+ .d2-2707529254 .fill-N5{fill:#DEE1EB;}
+ .d2-2707529254 .fill-N6{fill:#EEF1F8;}
+ .d2-2707529254 .fill-N7{fill:#FFFFFF;}
+ .d2-2707529254 .fill-B1{fill:#0D32B2;}
+ .d2-2707529254 .fill-B2{fill:#0D32B2;}
+ .d2-2707529254 .fill-B3{fill:#E3E9FD;}
+ .d2-2707529254 .fill-B4{fill:#E3E9FD;}
+ .d2-2707529254 .fill-B5{fill:#EDF0FD;}
+ .d2-2707529254 .fill-B6{fill:#F7F8FE;}
+ .d2-2707529254 .fill-AA2{fill:#4A6FF3;}
+ .d2-2707529254 .fill-AA4{fill:#EDF0FD;}
+ .d2-2707529254 .fill-AA5{fill:#F7F8FE;}
+ .d2-2707529254 .fill-AB4{fill:#EDF0FD;}
+ .d2-2707529254 .fill-AB5{fill:#F7F8FE;}
+ .d2-2707529254 .stroke-N1{stroke:#0A0F25;}
+ .d2-2707529254 .stroke-N2{stroke:#676C7E;}
+ .d2-2707529254 .stroke-N3{stroke:#9499AB;}
+ .d2-2707529254 .stroke-N4{stroke:#CFD2DD;}
+ .d2-2707529254 .stroke-N5{stroke:#DEE1EB;}
+ .d2-2707529254 .stroke-N6{stroke:#EEF1F8;}
+ .d2-2707529254 .stroke-N7{stroke:#FFFFFF;}
+ .d2-2707529254 .stroke-B1{stroke:#0D32B2;}
+ .d2-2707529254 .stroke-B2{stroke:#0D32B2;}
+ .d2-2707529254 .stroke-B3{stroke:#E3E9FD;}
+ .d2-2707529254 .stroke-B4{stroke:#E3E9FD;}
+ .d2-2707529254 .stroke-B5{stroke:#EDF0FD;}
+ .d2-2707529254 .stroke-B6{stroke:#F7F8FE;}
+ .d2-2707529254 .stroke-AA2{stroke:#4A6FF3;}
+ .d2-2707529254 .stroke-AA4{stroke:#EDF0FD;}
+ .d2-2707529254 .stroke-AA5{stroke:#F7F8FE;}
+ .d2-2707529254 .stroke-AB4{stroke:#EDF0FD;}
+ .d2-2707529254 .stroke-AB5{stroke:#F7F8FE;}
+ .d2-2707529254 .background-color-N1{background-color:#0A0F25;}
+ .d2-2707529254 .background-color-N2{background-color:#676C7E;}
+ .d2-2707529254 .background-color-N3{background-color:#9499AB;}
+ .d2-2707529254 .background-color-N4{background-color:#CFD2DD;}
+ .d2-2707529254 .background-color-N5{background-color:#DEE1EB;}
+ .d2-2707529254 .background-color-N6{background-color:#EEF1F8;}
+ .d2-2707529254 .background-color-N7{background-color:#FFFFFF;}
+ .d2-2707529254 .background-color-B1{background-color:#0D32B2;}
+ .d2-2707529254 .background-color-B2{background-color:#0D32B2;}
+ .d2-2707529254 .background-color-B3{background-color:#E3E9FD;}
+ .d2-2707529254 .background-color-B4{background-color:#E3E9FD;}
+ .d2-2707529254 .background-color-B5{background-color:#EDF0FD;}
+ .d2-2707529254 .background-color-B6{background-color:#F7F8FE;}
+ .d2-2707529254 .background-color-AA2{background-color:#4A6FF3;}
+ .d2-2707529254 .background-color-AA4{background-color:#EDF0FD;}
+ .d2-2707529254 .background-color-AA5{background-color:#F7F8FE;}
+ .d2-2707529254 .background-color-AB4{background-color:#EDF0FD;}
+ .d2-2707529254 .background-color-AB5{background-color:#F7F8FE;}
+ .d2-2707529254 .color-N1{color:#0A0F25;}
+ .d2-2707529254 .color-N2{color:#676C7E;}
+ .d2-2707529254 .color-N3{color:#9499AB;}
+ .d2-2707529254 .color-N4{color:#CFD2DD;}
+ .d2-2707529254 .color-N5{color:#DEE1EB;}
+ .d2-2707529254 .color-N6{color:#EEF1F8;}
+ .d2-2707529254 .color-N7{color:#FFFFFF;}
+ .d2-2707529254 .color-B1{color:#0D32B2;}
+ .d2-2707529254 .color-B2{color:#0D32B2;}
+ .d2-2707529254 .color-B3{color:#E3E9FD;}
+ .d2-2707529254 .color-B4{color:#E3E9FD;}
+ .d2-2707529254 .color-B5{color:#EDF0FD;}
+ .d2-2707529254 .color-B6{color:#F7F8FE;}
+ .d2-2707529254 .color-AA2{color:#4A6FF3;}
+ .d2-2707529254 .color-AA4{color:#EDF0FD;}
+ .d2-2707529254 .color-AA5{color:#F7F8FE;}
+ .d2-2707529254 .color-AB4{color:#EDF0FD;}
+ .d2-2707529254 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>student committee chair committee Apply for appeal Deny. Need more information Accept appeal
diff --git a/e2etests/testdata/stable/edge-label-overflow/elk/board.exp.json b/e2etests/testdata/stable/edge-label-overflow/elk/board.exp.json
index 5e61dd482..ba7cc813d 100644
--- a/e2etests/testdata/stable/edge-label-overflow/elk/board.exp.json
+++ b/e2etests/testdata/stable/edge-label-overflow/elk/board.exp.json
@@ -153,11 +153,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 130.58333333333331,
+ "x": 130.58299255371094,
"y": 78
},
{
- "x": 130.58333333333331,
+ "x": 130.58299255371094,
"y": 118
},
{
@@ -207,11 +207,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 163.91666666666666,
+ "x": 163.91600036621094,
"y": 78
},
{
- "x": 163.91666666666666,
+ "x": 163.91600036621094,
"y": 118
},
{
diff --git a/e2etests/testdata/stable/edge-label-overflow/elk/sketch.exp.svg b/e2etests/testdata/stable/edge-label-overflow/elk/sketch.exp.svg
index c585f20de..c2e0d82a8 100644
--- a/e2etests/testdata/stable/edge-label-overflow/elk/sketch.exp.svg
+++ b/e2etests/testdata/stable/edge-label-overflow/elk/sketch.exp.svg
@@ -1,17 +1,17 @@
-student committee chair committee Apply for appeal Deny. Need more information Accept appeal
+ .d2-240895254 .fill-N1{fill:#0A0F25;}
+ .d2-240895254 .fill-N2{fill:#676C7E;}
+ .d2-240895254 .fill-N3{fill:#9499AB;}
+ .d2-240895254 .fill-N4{fill:#CFD2DD;}
+ .d2-240895254 .fill-N5{fill:#DEE1EB;}
+ .d2-240895254 .fill-N6{fill:#EEF1F8;}
+ .d2-240895254 .fill-N7{fill:#FFFFFF;}
+ .d2-240895254 .fill-B1{fill:#0D32B2;}
+ .d2-240895254 .fill-B2{fill:#0D32B2;}
+ .d2-240895254 .fill-B3{fill:#E3E9FD;}
+ .d2-240895254 .fill-B4{fill:#E3E9FD;}
+ .d2-240895254 .fill-B5{fill:#EDF0FD;}
+ .d2-240895254 .fill-B6{fill:#F7F8FE;}
+ .d2-240895254 .fill-AA2{fill:#4A6FF3;}
+ .d2-240895254 .fill-AA4{fill:#EDF0FD;}
+ .d2-240895254 .fill-AA5{fill:#F7F8FE;}
+ .d2-240895254 .fill-AB4{fill:#EDF0FD;}
+ .d2-240895254 .fill-AB5{fill:#F7F8FE;}
+ .d2-240895254 .stroke-N1{stroke:#0A0F25;}
+ .d2-240895254 .stroke-N2{stroke:#676C7E;}
+ .d2-240895254 .stroke-N3{stroke:#9499AB;}
+ .d2-240895254 .stroke-N4{stroke:#CFD2DD;}
+ .d2-240895254 .stroke-N5{stroke:#DEE1EB;}
+ .d2-240895254 .stroke-N6{stroke:#EEF1F8;}
+ .d2-240895254 .stroke-N7{stroke:#FFFFFF;}
+ .d2-240895254 .stroke-B1{stroke:#0D32B2;}
+ .d2-240895254 .stroke-B2{stroke:#0D32B2;}
+ .d2-240895254 .stroke-B3{stroke:#E3E9FD;}
+ .d2-240895254 .stroke-B4{stroke:#E3E9FD;}
+ .d2-240895254 .stroke-B5{stroke:#EDF0FD;}
+ .d2-240895254 .stroke-B6{stroke:#F7F8FE;}
+ .d2-240895254 .stroke-AA2{stroke:#4A6FF3;}
+ .d2-240895254 .stroke-AA4{stroke:#EDF0FD;}
+ .d2-240895254 .stroke-AA5{stroke:#F7F8FE;}
+ .d2-240895254 .stroke-AB4{stroke:#EDF0FD;}
+ .d2-240895254 .stroke-AB5{stroke:#F7F8FE;}
+ .d2-240895254 .background-color-N1{background-color:#0A0F25;}
+ .d2-240895254 .background-color-N2{background-color:#676C7E;}
+ .d2-240895254 .background-color-N3{background-color:#9499AB;}
+ .d2-240895254 .background-color-N4{background-color:#CFD2DD;}
+ .d2-240895254 .background-color-N5{background-color:#DEE1EB;}
+ .d2-240895254 .background-color-N6{background-color:#EEF1F8;}
+ .d2-240895254 .background-color-N7{background-color:#FFFFFF;}
+ .d2-240895254 .background-color-B1{background-color:#0D32B2;}
+ .d2-240895254 .background-color-B2{background-color:#0D32B2;}
+ .d2-240895254 .background-color-B3{background-color:#E3E9FD;}
+ .d2-240895254 .background-color-B4{background-color:#E3E9FD;}
+ .d2-240895254 .background-color-B5{background-color:#EDF0FD;}
+ .d2-240895254 .background-color-B6{background-color:#F7F8FE;}
+ .d2-240895254 .background-color-AA2{background-color:#4A6FF3;}
+ .d2-240895254 .background-color-AA4{background-color:#EDF0FD;}
+ .d2-240895254 .background-color-AA5{background-color:#F7F8FE;}
+ .d2-240895254 .background-color-AB4{background-color:#EDF0FD;}
+ .d2-240895254 .background-color-AB5{background-color:#F7F8FE;}
+ .d2-240895254 .color-N1{color:#0A0F25;}
+ .d2-240895254 .color-N2{color:#676C7E;}
+ .d2-240895254 .color-N3{color:#9499AB;}
+ .d2-240895254 .color-N4{color:#CFD2DD;}
+ .d2-240895254 .color-N5{color:#DEE1EB;}
+ .d2-240895254 .color-N6{color:#EEF1F8;}
+ .d2-240895254 .color-N7{color:#FFFFFF;}
+ .d2-240895254 .color-B1{color:#0D32B2;}
+ .d2-240895254 .color-B2{color:#0D32B2;}
+ .d2-240895254 .color-B3{color:#E3E9FD;}
+ .d2-240895254 .color-B4{color:#E3E9FD;}
+ .d2-240895254 .color-B5{color:#EDF0FD;}
+ .d2-240895254 .color-B6{color:#F7F8FE;}
+ .d2-240895254 .color-AA2{color:#4A6FF3;}
+ .d2-240895254 .color-AA4{color:#EDF0FD;}
+ .d2-240895254 .color-AA5{color:#F7F8FE;}
+ .d2-240895254 .color-AB4{color:#EDF0FD;}
+ .d2-240895254 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>student committee chair committee Apply for appeal Deny. Need more information Accept appeal
diff --git a/e2etests/testdata/stable/elk_border_radius/dagre/board.exp.json b/e2etests/testdata/stable/elk_border_radius/dagre/board.exp.json
index 5a2614174..a37440eb6 100644
--- a/e2etests/testdata/stable/elk_border_radius/dagre/board.exp.json
+++ b/e2etests/testdata/stable/elk_border_radius/dagre/board.exp.json
@@ -277,11 +277,11 @@
"route": [
{
"x": 226,
- "y": 42.73230088495575
+ "y": 42.731998443603516
},
{
- "x": 66.39999999999998,
- "y": 101.34646017699114
+ "x": 66.39900207519531,
+ "y": 101.34600067138672
},
{
"x": 26.5,
@@ -323,11 +323,11 @@
"route": [
{
"x": 226,
- "y": 52.4646017699115
+ "y": 52.4640007019043
},
{
- "x": 156.8,
- "y": 103.29292035398231
+ "x": 156.8000030517578,
+ "y": 103.29199981689453
},
{
"x": 139.5,
@@ -417,11 +417,11 @@
"route": [
{
"x": 279,
- "y": 52.63839285714286
+ "y": 52.63800048828125
},
{
- "x": 347.4,
- "y": 103.32767857142858
+ "x": 347.3999938964844,
+ "y": 103.3270034790039
},
{
"x": 364.5,
@@ -464,11 +464,11 @@
"route": [
{
"x": 279,
- "y": 42.797327394209354
+ "y": 42.797000885009766
},
{
- "x": 437.4,
- "y": 101.35946547884187
+ "x": 437.3999938964844,
+ "y": 101.35900115966797
},
{
"x": 477,
diff --git a/e2etests/testdata/stable/elk_border_radius/dagre/sketch.exp.svg b/e2etests/testdata/stable/elk_border_radius/dagre/sketch.exp.svg
index c871a4170..b0427e98e 100644
--- a/e2etests/testdata/stable/elk_border_radius/dagre/sketch.exp.svg
+++ b/e2etests/testdata/stable/elk_border_radius/dagre/sketch.exp.svg
@@ -1,10 +1,10 @@
-a b c e f g
+ .d2-3564505715 .fill-N1{fill:#0A0F25;}
+ .d2-3564505715 .fill-N2{fill:#676C7E;}
+ .d2-3564505715 .fill-N3{fill:#9499AB;}
+ .d2-3564505715 .fill-N4{fill:#CFD2DD;}
+ .d2-3564505715 .fill-N5{fill:#DEE1EB;}
+ .d2-3564505715 .fill-N6{fill:#EEF1F8;}
+ .d2-3564505715 .fill-N7{fill:#FFFFFF;}
+ .d2-3564505715 .fill-B1{fill:#0D32B2;}
+ .d2-3564505715 .fill-B2{fill:#0D32B2;}
+ .d2-3564505715 .fill-B3{fill:#E3E9FD;}
+ .d2-3564505715 .fill-B4{fill:#E3E9FD;}
+ .d2-3564505715 .fill-B5{fill:#EDF0FD;}
+ .d2-3564505715 .fill-B6{fill:#F7F8FE;}
+ .d2-3564505715 .fill-AA2{fill:#4A6FF3;}
+ .d2-3564505715 .fill-AA4{fill:#EDF0FD;}
+ .d2-3564505715 .fill-AA5{fill:#F7F8FE;}
+ .d2-3564505715 .fill-AB4{fill:#EDF0FD;}
+ .d2-3564505715 .fill-AB5{fill:#F7F8FE;}
+ .d2-3564505715 .stroke-N1{stroke:#0A0F25;}
+ .d2-3564505715 .stroke-N2{stroke:#676C7E;}
+ .d2-3564505715 .stroke-N3{stroke:#9499AB;}
+ .d2-3564505715 .stroke-N4{stroke:#CFD2DD;}
+ .d2-3564505715 .stroke-N5{stroke:#DEE1EB;}
+ .d2-3564505715 .stroke-N6{stroke:#EEF1F8;}
+ .d2-3564505715 .stroke-N7{stroke:#FFFFFF;}
+ .d2-3564505715 .stroke-B1{stroke:#0D32B2;}
+ .d2-3564505715 .stroke-B2{stroke:#0D32B2;}
+ .d2-3564505715 .stroke-B3{stroke:#E3E9FD;}
+ .d2-3564505715 .stroke-B4{stroke:#E3E9FD;}
+ .d2-3564505715 .stroke-B5{stroke:#EDF0FD;}
+ .d2-3564505715 .stroke-B6{stroke:#F7F8FE;}
+ .d2-3564505715 .stroke-AA2{stroke:#4A6FF3;}
+ .d2-3564505715 .stroke-AA4{stroke:#EDF0FD;}
+ .d2-3564505715 .stroke-AA5{stroke:#F7F8FE;}
+ .d2-3564505715 .stroke-AB4{stroke:#EDF0FD;}
+ .d2-3564505715 .stroke-AB5{stroke:#F7F8FE;}
+ .d2-3564505715 .background-color-N1{background-color:#0A0F25;}
+ .d2-3564505715 .background-color-N2{background-color:#676C7E;}
+ .d2-3564505715 .background-color-N3{background-color:#9499AB;}
+ .d2-3564505715 .background-color-N4{background-color:#CFD2DD;}
+ .d2-3564505715 .background-color-N5{background-color:#DEE1EB;}
+ .d2-3564505715 .background-color-N6{background-color:#EEF1F8;}
+ .d2-3564505715 .background-color-N7{background-color:#FFFFFF;}
+ .d2-3564505715 .background-color-B1{background-color:#0D32B2;}
+ .d2-3564505715 .background-color-B2{background-color:#0D32B2;}
+ .d2-3564505715 .background-color-B3{background-color:#E3E9FD;}
+ .d2-3564505715 .background-color-B4{background-color:#E3E9FD;}
+ .d2-3564505715 .background-color-B5{background-color:#EDF0FD;}
+ .d2-3564505715 .background-color-B6{background-color:#F7F8FE;}
+ .d2-3564505715 .background-color-AA2{background-color:#4A6FF3;}
+ .d2-3564505715 .background-color-AA4{background-color:#EDF0FD;}
+ .d2-3564505715 .background-color-AA5{background-color:#F7F8FE;}
+ .d2-3564505715 .background-color-AB4{background-color:#EDF0FD;}
+ .d2-3564505715 .background-color-AB5{background-color:#F7F8FE;}
+ .d2-3564505715 .color-N1{color:#0A0F25;}
+ .d2-3564505715 .color-N2{color:#676C7E;}
+ .d2-3564505715 .color-N3{color:#9499AB;}
+ .d2-3564505715 .color-N4{color:#CFD2DD;}
+ .d2-3564505715 .color-N5{color:#DEE1EB;}
+ .d2-3564505715 .color-N6{color:#EEF1F8;}
+ .d2-3564505715 .color-N7{color:#FFFFFF;}
+ .d2-3564505715 .color-B1{color:#0D32B2;}
+ .d2-3564505715 .color-B2{color:#0D32B2;}
+ .d2-3564505715 .color-B3{color:#E3E9FD;}
+ .d2-3564505715 .color-B4{color:#E3E9FD;}
+ .d2-3564505715 .color-B5{color:#EDF0FD;}
+ .d2-3564505715 .color-B6{color:#F7F8FE;}
+ .d2-3564505715 .color-AA2{color:#4A6FF3;}
+ .d2-3564505715 .color-AA4{color:#EDF0FD;}
+ .d2-3564505715 .color-AA5{color:#F7F8FE;}
+ .d2-3564505715 .color-AB4{color:#EDF0FD;}
+ .d2-3564505715 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>a b c e f g
\ No newline at end of file
diff --git a/e2etests/testdata/stable/elk_border_radius/elk/board.exp.json b/e2etests/testdata/stable/elk_border_radius/elk/board.exp.json
index 70513bdfb..823bb7a76 100644
--- a/e2etests/testdata/stable/elk_border_radius/elk/board.exp.json
+++ b/e2etests/testdata/stable/elk_border_radius/elk/board.exp.json
@@ -276,11 +276,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 117.83333333333333,
+ "x": 117.83300018310547,
"y": 78
},
{
- "x": 117.83333333333333,
+ "x": 117.83300018310547,
"y": 118
},
{
@@ -321,11 +321,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 151.16666666666666,
+ "x": 151.16600036621094,
"y": 78
},
{
- "x": 151.16666666666666,
+ "x": 151.16600036621094,
"y": 168
},
{
@@ -405,11 +405,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 217.83333333333331,
+ "x": 217.83299255371094,
"y": 78
},
{
- "x": 217.83333333333331,
+ "x": 217.83299255371094,
"y": 168
},
{
@@ -451,11 +451,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 251.16666666666663,
+ "x": 251.16600036621094,
"y": 78
},
{
- "x": 251.16666666666663,
+ "x": 251.16600036621094,
"y": 118
},
{
diff --git a/e2etests/testdata/stable/elk_border_radius/elk/sketch.exp.svg b/e2etests/testdata/stable/elk_border_radius/elk/sketch.exp.svg
index 3b4ac6c99..023f9df17 100644
--- a/e2etests/testdata/stable/elk_border_radius/elk/sketch.exp.svg
+++ b/e2etests/testdata/stable/elk_border_radius/elk/sketch.exp.svg
@@ -1,10 +1,10 @@
-a b c e f g
+ .d2-4249990773 .fill-N1{fill:#0A0F25;}
+ .d2-4249990773 .fill-N2{fill:#676C7E;}
+ .d2-4249990773 .fill-N3{fill:#9499AB;}
+ .d2-4249990773 .fill-N4{fill:#CFD2DD;}
+ .d2-4249990773 .fill-N5{fill:#DEE1EB;}
+ .d2-4249990773 .fill-N6{fill:#EEF1F8;}
+ .d2-4249990773 .fill-N7{fill:#FFFFFF;}
+ .d2-4249990773 .fill-B1{fill:#0D32B2;}
+ .d2-4249990773 .fill-B2{fill:#0D32B2;}
+ .d2-4249990773 .fill-B3{fill:#E3E9FD;}
+ .d2-4249990773 .fill-B4{fill:#E3E9FD;}
+ .d2-4249990773 .fill-B5{fill:#EDF0FD;}
+ .d2-4249990773 .fill-B6{fill:#F7F8FE;}
+ .d2-4249990773 .fill-AA2{fill:#4A6FF3;}
+ .d2-4249990773 .fill-AA4{fill:#EDF0FD;}
+ .d2-4249990773 .fill-AA5{fill:#F7F8FE;}
+ .d2-4249990773 .fill-AB4{fill:#EDF0FD;}
+ .d2-4249990773 .fill-AB5{fill:#F7F8FE;}
+ .d2-4249990773 .stroke-N1{stroke:#0A0F25;}
+ .d2-4249990773 .stroke-N2{stroke:#676C7E;}
+ .d2-4249990773 .stroke-N3{stroke:#9499AB;}
+ .d2-4249990773 .stroke-N4{stroke:#CFD2DD;}
+ .d2-4249990773 .stroke-N5{stroke:#DEE1EB;}
+ .d2-4249990773 .stroke-N6{stroke:#EEF1F8;}
+ .d2-4249990773 .stroke-N7{stroke:#FFFFFF;}
+ .d2-4249990773 .stroke-B1{stroke:#0D32B2;}
+ .d2-4249990773 .stroke-B2{stroke:#0D32B2;}
+ .d2-4249990773 .stroke-B3{stroke:#E3E9FD;}
+ .d2-4249990773 .stroke-B4{stroke:#E3E9FD;}
+ .d2-4249990773 .stroke-B5{stroke:#EDF0FD;}
+ .d2-4249990773 .stroke-B6{stroke:#F7F8FE;}
+ .d2-4249990773 .stroke-AA2{stroke:#4A6FF3;}
+ .d2-4249990773 .stroke-AA4{stroke:#EDF0FD;}
+ .d2-4249990773 .stroke-AA5{stroke:#F7F8FE;}
+ .d2-4249990773 .stroke-AB4{stroke:#EDF0FD;}
+ .d2-4249990773 .stroke-AB5{stroke:#F7F8FE;}
+ .d2-4249990773 .background-color-N1{background-color:#0A0F25;}
+ .d2-4249990773 .background-color-N2{background-color:#676C7E;}
+ .d2-4249990773 .background-color-N3{background-color:#9499AB;}
+ .d2-4249990773 .background-color-N4{background-color:#CFD2DD;}
+ .d2-4249990773 .background-color-N5{background-color:#DEE1EB;}
+ .d2-4249990773 .background-color-N6{background-color:#EEF1F8;}
+ .d2-4249990773 .background-color-N7{background-color:#FFFFFF;}
+ .d2-4249990773 .background-color-B1{background-color:#0D32B2;}
+ .d2-4249990773 .background-color-B2{background-color:#0D32B2;}
+ .d2-4249990773 .background-color-B3{background-color:#E3E9FD;}
+ .d2-4249990773 .background-color-B4{background-color:#E3E9FD;}
+ .d2-4249990773 .background-color-B5{background-color:#EDF0FD;}
+ .d2-4249990773 .background-color-B6{background-color:#F7F8FE;}
+ .d2-4249990773 .background-color-AA2{background-color:#4A6FF3;}
+ .d2-4249990773 .background-color-AA4{background-color:#EDF0FD;}
+ .d2-4249990773 .background-color-AA5{background-color:#F7F8FE;}
+ .d2-4249990773 .background-color-AB4{background-color:#EDF0FD;}
+ .d2-4249990773 .background-color-AB5{background-color:#F7F8FE;}
+ .d2-4249990773 .color-N1{color:#0A0F25;}
+ .d2-4249990773 .color-N2{color:#676C7E;}
+ .d2-4249990773 .color-N3{color:#9499AB;}
+ .d2-4249990773 .color-N4{color:#CFD2DD;}
+ .d2-4249990773 .color-N5{color:#DEE1EB;}
+ .d2-4249990773 .color-N6{color:#EEF1F8;}
+ .d2-4249990773 .color-N7{color:#FFFFFF;}
+ .d2-4249990773 .color-B1{color:#0D32B2;}
+ .d2-4249990773 .color-B2{color:#0D32B2;}
+ .d2-4249990773 .color-B3{color:#E3E9FD;}
+ .d2-4249990773 .color-B4{color:#E3E9FD;}
+ .d2-4249990773 .color-B5{color:#EDF0FD;}
+ .d2-4249990773 .color-B6{color:#F7F8FE;}
+ .d2-4249990773 .color-AA2{color:#4A6FF3;}
+ .d2-4249990773 .color-AA4{color:#EDF0FD;}
+ .d2-4249990773 .color-AA5{color:#F7F8FE;}
+ .d2-4249990773 .color-AB4{color:#EDF0FD;}
+ .d2-4249990773 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>a b c e f g
\ No newline at end of file
diff --git a/e2etests/testdata/stable/elk_container_height/dagre/sketch.exp.svg b/e2etests/testdata/stable/elk_container_height/dagre/sketch.exp.svg
index 347b3d4cb..fd49cfe9f 100644
--- a/e2etests/testdata/stable/elk_container_height/dagre/sketch.exp.svg
+++ b/e2etests/testdata/stable/elk_container_height/dagre/sketch.exp.svg
@@ -1,17 +1,17 @@
-network user api server logs cell tower ONLINE PORTALLLL data processor satellites transmitter ui storage send send send phone logs make call access display persist
-
-
-
-
-
+ .d2-2594873027 .fill-N1{fill:#0A0F25;}
+ .d2-2594873027 .fill-N2{fill:#676C7E;}
+ .d2-2594873027 .fill-N3{fill:#9499AB;}
+ .d2-2594873027 .fill-N4{fill:#CFD2DD;}
+ .d2-2594873027 .fill-N5{fill:#DEE1EB;}
+ .d2-2594873027 .fill-N6{fill:#EEF1F8;}
+ .d2-2594873027 .fill-N7{fill:#FFFFFF;}
+ .d2-2594873027 .fill-B1{fill:#0D32B2;}
+ .d2-2594873027 .fill-B2{fill:#0D32B2;}
+ .d2-2594873027 .fill-B3{fill:#E3E9FD;}
+ .d2-2594873027 .fill-B4{fill:#E3E9FD;}
+ .d2-2594873027 .fill-B5{fill:#EDF0FD;}
+ .d2-2594873027 .fill-B6{fill:#F7F8FE;}
+ .d2-2594873027 .fill-AA2{fill:#4A6FF3;}
+ .d2-2594873027 .fill-AA4{fill:#EDF0FD;}
+ .d2-2594873027 .fill-AA5{fill:#F7F8FE;}
+ .d2-2594873027 .fill-AB4{fill:#EDF0FD;}
+ .d2-2594873027 .fill-AB5{fill:#F7F8FE;}
+ .d2-2594873027 .stroke-N1{stroke:#0A0F25;}
+ .d2-2594873027 .stroke-N2{stroke:#676C7E;}
+ .d2-2594873027 .stroke-N3{stroke:#9499AB;}
+ .d2-2594873027 .stroke-N4{stroke:#CFD2DD;}
+ .d2-2594873027 .stroke-N5{stroke:#DEE1EB;}
+ .d2-2594873027 .stroke-N6{stroke:#EEF1F8;}
+ .d2-2594873027 .stroke-N7{stroke:#FFFFFF;}
+ .d2-2594873027 .stroke-B1{stroke:#0D32B2;}
+ .d2-2594873027 .stroke-B2{stroke:#0D32B2;}
+ .d2-2594873027 .stroke-B3{stroke:#E3E9FD;}
+ .d2-2594873027 .stroke-B4{stroke:#E3E9FD;}
+ .d2-2594873027 .stroke-B5{stroke:#EDF0FD;}
+ .d2-2594873027 .stroke-B6{stroke:#F7F8FE;}
+ .d2-2594873027 .stroke-AA2{stroke:#4A6FF3;}
+ .d2-2594873027 .stroke-AA4{stroke:#EDF0FD;}
+ .d2-2594873027 .stroke-AA5{stroke:#F7F8FE;}
+ .d2-2594873027 .stroke-AB4{stroke:#EDF0FD;}
+ .d2-2594873027 .stroke-AB5{stroke:#F7F8FE;}
+ .d2-2594873027 .background-color-N1{background-color:#0A0F25;}
+ .d2-2594873027 .background-color-N2{background-color:#676C7E;}
+ .d2-2594873027 .background-color-N3{background-color:#9499AB;}
+ .d2-2594873027 .background-color-N4{background-color:#CFD2DD;}
+ .d2-2594873027 .background-color-N5{background-color:#DEE1EB;}
+ .d2-2594873027 .background-color-N6{background-color:#EEF1F8;}
+ .d2-2594873027 .background-color-N7{background-color:#FFFFFF;}
+ .d2-2594873027 .background-color-B1{background-color:#0D32B2;}
+ .d2-2594873027 .background-color-B2{background-color:#0D32B2;}
+ .d2-2594873027 .background-color-B3{background-color:#E3E9FD;}
+ .d2-2594873027 .background-color-B4{background-color:#E3E9FD;}
+ .d2-2594873027 .background-color-B5{background-color:#EDF0FD;}
+ .d2-2594873027 .background-color-B6{background-color:#F7F8FE;}
+ .d2-2594873027 .background-color-AA2{background-color:#4A6FF3;}
+ .d2-2594873027 .background-color-AA4{background-color:#EDF0FD;}
+ .d2-2594873027 .background-color-AA5{background-color:#F7F8FE;}
+ .d2-2594873027 .background-color-AB4{background-color:#EDF0FD;}
+ .d2-2594873027 .background-color-AB5{background-color:#F7F8FE;}
+ .d2-2594873027 .color-N1{color:#0A0F25;}
+ .d2-2594873027 .color-N2{color:#676C7E;}
+ .d2-2594873027 .color-N3{color:#9499AB;}
+ .d2-2594873027 .color-N4{color:#CFD2DD;}
+ .d2-2594873027 .color-N5{color:#DEE1EB;}
+ .d2-2594873027 .color-N6{color:#EEF1F8;}
+ .d2-2594873027 .color-N7{color:#FFFFFF;}
+ .d2-2594873027 .color-B1{color:#0D32B2;}
+ .d2-2594873027 .color-B2{color:#0D32B2;}
+ .d2-2594873027 .color-B3{color:#E3E9FD;}
+ .d2-2594873027 .color-B4{color:#E3E9FD;}
+ .d2-2594873027 .color-B5{color:#EDF0FD;}
+ .d2-2594873027 .color-B6{color:#F7F8FE;}
+ .d2-2594873027 .color-AA2{color:#4A6FF3;}
+ .d2-2594873027 .color-AA4{color:#EDF0FD;}
+ .d2-2594873027 .color-AA5{color:#F7F8FE;}
+ .d2-2594873027 .color-AB4{color:#EDF0FD;}
+ .d2-2594873027 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>network user api server logs cell tower ONLINE PORTALLLL data processor satellites transmitter ui storage send send send phone logs make call access display persist
+
+
+
+
+
-
-
-
+
+
+
\ No newline at end of file
diff --git a/e2etests/testdata/stable/elk_shim/elk/board.exp.json b/e2etests/testdata/stable/elk_shim/elk/board.exp.json
index 381f7aad8..e70b9c475 100644
--- a/e2etests/testdata/stable/elk_shim/elk/board.exp.json
+++ b/e2etests/testdata/stable/elk_shim/elk/board.exp.json
@@ -10,8 +10,8 @@
"x": 12,
"y": 311
},
- "width": 603,
- "height": 892,
+ "width": 613,
+ "height": 912,
"opacity": 1,
"strokeDash": 0,
"strokeWidth": 2,
@@ -51,8 +51,8 @@
"x": 62,
"y": 361
},
- "width": 240,
- "height": 403,
+ "width": 250,
+ "height": 413,
"opacity": 1,
"strokeDash": 0,
"strokeWidth": 2,
@@ -90,7 +90,7 @@
"type": "stored_data",
"pos": {
"x": 112,
- "y": 411
+ "y": 421
},
"width": 140,
"height": 61,
@@ -130,8 +130,8 @@
"id": "network.cell tower.transmitter",
"type": "rectangle",
"pos": {
- "x": 112,
- "y": 653
+ "x": 117,
+ "y": 663
},
"width": 140,
"height": 61,
@@ -171,7 +171,7 @@
"id": "network.online portal",
"type": "rectangle",
"pos": {
- "x": 322,
+ "x": 332,
"y": 366
},
"width": 243,
@@ -212,7 +212,7 @@
"id": "network.online portal.ui",
"type": "hexagon",
"pos": {
- "x": 403,
+ "x": 413,
"y": 416
},
"width": 80,
@@ -254,10 +254,10 @@
"type": "rectangle",
"pos": {
"x": 82,
- "y": 935
+ "y": 945
},
- "width": 199,
- "height": 218,
+ "width": 209,
+ "height": 228,
"opacity": 1,
"strokeDash": 0,
"strokeWidth": 2,
@@ -295,7 +295,7 @@
"type": "cylinder",
"pos": {
"x": 132,
- "y": 985
+ "y": 1005
},
"width": 99,
"height": 118,
@@ -335,7 +335,7 @@
"id": "user",
"type": "person",
"pos": {
- "x": 206,
+ "x": 211,
"y": 12
},
"width": 130,
@@ -376,8 +376,8 @@
"id": "api server",
"type": "rectangle",
"pos": {
- "x": 337,
- "y": 1358
+ "x": 342,
+ "y": 1378
},
"width": 116,
"height": 66,
@@ -418,7 +418,7 @@
"type": "page",
"pos": {
"x": 359,
- "y": 1585
+ "y": 1615
},
"width": 73,
"height": 87,
@@ -481,12 +481,12 @@
"labelPercentage": 0,
"route": [
{
- "x": 138,
- "y": 472
+ "x": 143,
+ "y": 482
},
{
- "x": 138,
- "y": 653
+ "x": 143,
+ "y": 663
}
],
"animated": false,
@@ -519,12 +519,12 @@
"labelPercentage": 0,
"route": [
{
- "x": 182,
- "y": 472
+ "x": 187,
+ "y": 482
},
{
- "x": 182,
- "y": 653
+ "x": 187,
+ "y": 663
}
],
"animated": false,
@@ -557,12 +557,12 @@
"labelPercentage": 0,
"route": [
{
- "x": 226,
- "y": 472
+ "x": 231,
+ "y": 482
},
{
- "x": 226,
- "y": 653
+ "x": 231,
+ "y": 663
}
],
"animated": false,
@@ -595,12 +595,12 @@
"labelPercentage": 0,
"route": [
{
- "x": 182,
- "y": 714
+ "x": 187,
+ "y": 724
},
{
- "x": 182,
- "y": 985
+ "x": 187,
+ "y": 995
}
],
"animated": false,
@@ -633,19 +633,19 @@
"labelPercentage": 0,
"route": [
{
- "x": 249,
+ "x": 254,
"y": 99
},
{
- "x": 249.41666666666669,
+ "x": 254.41600036621094,
"y": 165
},
{
- "x": 118.83333333333331,
+ "x": 118.83300018310547,
"y": 165
},
{
- "x": 118.83333333333331,
+ "x": 118.83300018310547,
"y": 361
}
],
@@ -679,19 +679,19 @@
"labelPercentage": 0,
"route": [
{
- "x": 293,
+ "x": 298,
"y": 99
},
{
- "x": 292.75,
+ "x": 297.75,
"y": 165
},
{
- "x": 423.33333333333337,
+ "x": 433.3330078125,
"y": 165
},
{
- "x": 423,
+ "x": 433,
"y": 417
}
],
@@ -725,27 +725,27 @@
"labelPercentage": 0,
"route": [
{
- "x": 415.0833333333333,
- "y": 1358
+ "x": 420.0830078125,
+ "y": 1378
},
{
- "x": 415.0833333333333,
- "y": 1318
+ "x": 420.0830078125,
+ "y": 1338
},
{
- "x": 659,
- "y": 1318
+ "x": 669,
+ "y": 1338
},
{
- "x": 659,
+ "x": 669,
"y": 266
},
{
- "x": 456.83333333333337,
+ "x": 466.8330078125,
"y": 266
},
{
- "x": 457,
+ "x": 467,
"y": 416
}
],
@@ -779,12 +779,12 @@
"labelPercentage": 0,
"route": [
{
- "x": 395.75,
- "y": 1424
+ "x": 400.75,
+ "y": 1444
},
{
- "x": 396,
- "y": 1585
+ "x": 401,
+ "y": 1605
}
],
"animated": false,
@@ -818,19 +818,19 @@
"route": [
{
"x": 132.5,
- "y": 1153
+ "y": 1173
},
{
"x": 132.5,
- "y": 1318
+ "y": 1338
},
{
- "x": 376.4166666666667,
- "y": 1318
+ "x": 381.4159851074219,
+ "y": 1338
},
{
- "x": 376.4166666666667,
- "y": 1358
+ "x": 381.4159851074219,
+ "y": 1378
}
],
"animated": false,
diff --git a/e2etests/testdata/stable/elk_shim/elk/sketch.exp.svg b/e2etests/testdata/stable/elk_shim/elk/sketch.exp.svg
index bf81e234b..56e015809 100644
--- a/e2etests/testdata/stable/elk_shim/elk/sketch.exp.svg
+++ b/e2etests/testdata/stable/elk_shim/elk/sketch.exp.svg
@@ -1,24 +1,24 @@
-network user api server logs cell tower ONLINE PORTALLLL data processor satellites transmitter ui storage send send send phone logs make call access display persist
-
-
-
-
-
-
-
-
-
+ .d2-4203434540 .fill-N1{fill:#0A0F25;}
+ .d2-4203434540 .fill-N2{fill:#676C7E;}
+ .d2-4203434540 .fill-N3{fill:#9499AB;}
+ .d2-4203434540 .fill-N4{fill:#CFD2DD;}
+ .d2-4203434540 .fill-N5{fill:#DEE1EB;}
+ .d2-4203434540 .fill-N6{fill:#EEF1F8;}
+ .d2-4203434540 .fill-N7{fill:#FFFFFF;}
+ .d2-4203434540 .fill-B1{fill:#0D32B2;}
+ .d2-4203434540 .fill-B2{fill:#0D32B2;}
+ .d2-4203434540 .fill-B3{fill:#E3E9FD;}
+ .d2-4203434540 .fill-B4{fill:#E3E9FD;}
+ .d2-4203434540 .fill-B5{fill:#EDF0FD;}
+ .d2-4203434540 .fill-B6{fill:#F7F8FE;}
+ .d2-4203434540 .fill-AA2{fill:#4A6FF3;}
+ .d2-4203434540 .fill-AA4{fill:#EDF0FD;}
+ .d2-4203434540 .fill-AA5{fill:#F7F8FE;}
+ .d2-4203434540 .fill-AB4{fill:#EDF0FD;}
+ .d2-4203434540 .fill-AB5{fill:#F7F8FE;}
+ .d2-4203434540 .stroke-N1{stroke:#0A0F25;}
+ .d2-4203434540 .stroke-N2{stroke:#676C7E;}
+ .d2-4203434540 .stroke-N3{stroke:#9499AB;}
+ .d2-4203434540 .stroke-N4{stroke:#CFD2DD;}
+ .d2-4203434540 .stroke-N5{stroke:#DEE1EB;}
+ .d2-4203434540 .stroke-N6{stroke:#EEF1F8;}
+ .d2-4203434540 .stroke-N7{stroke:#FFFFFF;}
+ .d2-4203434540 .stroke-B1{stroke:#0D32B2;}
+ .d2-4203434540 .stroke-B2{stroke:#0D32B2;}
+ .d2-4203434540 .stroke-B3{stroke:#E3E9FD;}
+ .d2-4203434540 .stroke-B4{stroke:#E3E9FD;}
+ .d2-4203434540 .stroke-B5{stroke:#EDF0FD;}
+ .d2-4203434540 .stroke-B6{stroke:#F7F8FE;}
+ .d2-4203434540 .stroke-AA2{stroke:#4A6FF3;}
+ .d2-4203434540 .stroke-AA4{stroke:#EDF0FD;}
+ .d2-4203434540 .stroke-AA5{stroke:#F7F8FE;}
+ .d2-4203434540 .stroke-AB4{stroke:#EDF0FD;}
+ .d2-4203434540 .stroke-AB5{stroke:#F7F8FE;}
+ .d2-4203434540 .background-color-N1{background-color:#0A0F25;}
+ .d2-4203434540 .background-color-N2{background-color:#676C7E;}
+ .d2-4203434540 .background-color-N3{background-color:#9499AB;}
+ .d2-4203434540 .background-color-N4{background-color:#CFD2DD;}
+ .d2-4203434540 .background-color-N5{background-color:#DEE1EB;}
+ .d2-4203434540 .background-color-N6{background-color:#EEF1F8;}
+ .d2-4203434540 .background-color-N7{background-color:#FFFFFF;}
+ .d2-4203434540 .background-color-B1{background-color:#0D32B2;}
+ .d2-4203434540 .background-color-B2{background-color:#0D32B2;}
+ .d2-4203434540 .background-color-B3{background-color:#E3E9FD;}
+ .d2-4203434540 .background-color-B4{background-color:#E3E9FD;}
+ .d2-4203434540 .background-color-B5{background-color:#EDF0FD;}
+ .d2-4203434540 .background-color-B6{background-color:#F7F8FE;}
+ .d2-4203434540 .background-color-AA2{background-color:#4A6FF3;}
+ .d2-4203434540 .background-color-AA4{background-color:#EDF0FD;}
+ .d2-4203434540 .background-color-AA5{background-color:#F7F8FE;}
+ .d2-4203434540 .background-color-AB4{background-color:#EDF0FD;}
+ .d2-4203434540 .background-color-AB5{background-color:#F7F8FE;}
+ .d2-4203434540 .color-N1{color:#0A0F25;}
+ .d2-4203434540 .color-N2{color:#676C7E;}
+ .d2-4203434540 .color-N3{color:#9499AB;}
+ .d2-4203434540 .color-N4{color:#CFD2DD;}
+ .d2-4203434540 .color-N5{color:#DEE1EB;}
+ .d2-4203434540 .color-N6{color:#EEF1F8;}
+ .d2-4203434540 .color-N7{color:#FFFFFF;}
+ .d2-4203434540 .color-B1{color:#0D32B2;}
+ .d2-4203434540 .color-B2{color:#0D32B2;}
+ .d2-4203434540 .color-B3{color:#E3E9FD;}
+ .d2-4203434540 .color-B4{color:#E3E9FD;}
+ .d2-4203434540 .color-B5{color:#EDF0FD;}
+ .d2-4203434540 .color-B6{color:#F7F8FE;}
+ .d2-4203434540 .color-AA2{color:#4A6FF3;}
+ .d2-4203434540 .color-AA4{color:#EDF0FD;}
+ .d2-4203434540 .color-AA5{color:#F7F8FE;}
+ .d2-4203434540 .color-AB4{color:#EDF0FD;}
+ .d2-4203434540 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>network user api server logs cell tower ONLINE PORTALLLL data processor satellites transmitter ui storage send send send phone logs make call access display persist
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/e2etests/testdata/stable/ent2d2_basic/dagre/board.exp.json b/e2etests/testdata/stable/ent2d2_basic/dagre/board.exp.json
index b2ce90df8..ec32a6e81 100644
--- a/e2etests/testdata/stable/ent2d2_basic/dagre/board.exp.json
+++ b/e2etests/testdata/stable/ent2d2_basic/dagre/board.exp.json
@@ -687,14 +687,14 @@
"route": [
{
"x": 770.5,
- "y": 22.43368421052633
+ "y": 22.433000564575195
},
{
- "x": 809.9666666666667,
- "y": 4.486736842105266
+ "x": 809.9660034179688,
+ "y": 4.486000061035156
},
{
- "x": 822.3000000000001,
+ "x": 822.2999877929688,
"y": 0
},
{
@@ -702,40 +702,40 @@
"y": 0
},
{
- "x": 829.6999999999999,
+ "x": 829.698974609375,
"y": 0
},
{
- "x": 834.6333333333333,
- "y": 14.4
+ "x": 834.6329956054688,
+ "y": 14.399999618530273
},
{
- "x": 838.3333333333333,
+ "x": 838.3330078125,
"y": 36
},
{
- "x": 842.0333333333333,
- "y": 57.6
+ "x": 842.0330200195312,
+ "y": 57.599998474121094
},
{
- "x": 842.0333333333333,
- "y": 86.4
+ "x": 842.0330200195312,
+ "y": 86.4000015258789
},
{
- "x": 838.3333333333333,
+ "x": 838.3330078125,
"y": 108
},
{
- "x": 834.6333333333333,
- "y": 129.6
+ "x": 834.6329956054688,
+ "y": 129.60000610351562
},
{
- "x": 809.9666666666667,
- "y": 139.51326315789473
+ "x": 809.9660034179688,
+ "y": 139.51300048828125
},
{
"x": 770.5,
- "y": 121.56631578947366
+ "y": 121.56600189208984
}
],
"isCurve": true,
@@ -770,14 +770,14 @@
"route": [
{
"x": 770.5,
- "y": 41.42337662337662
+ "y": 41.42300033569336
},
{
- "x": 888.6333333333333,
- "y": 8.28467532467532
+ "x": 888.6329956054688,
+ "y": 8.284000396728516
},
{
- "x": 925.55,
+ "x": 925.5499877929688,
"y": 0
},
{
@@ -785,40 +785,40 @@
"y": 0
},
{
- "x": 947.7,
+ "x": 947.7000122070312,
"y": 0
},
{
- "x": 962.4666666666667,
- "y": 14.4
+ "x": 962.4660034179688,
+ "y": 14.399999618530273
},
{
- "x": 973.5416666666667,
+ "x": 973.541015625,
"y": 36
},
{
- "x": 984.6166666666667,
- "y": 57.6
+ "x": 984.6160278320312,
+ "y": 57.599998474121094
},
{
- "x": 984.6166666666667,
- "y": 86.4
+ "x": 984.6160278320312,
+ "y": 86.4000015258789
},
{
- "x": 973.5416666666667,
+ "x": 973.541015625,
"y": 108
},
{
- "x": 962.4666666666667,
- "y": 129.6
+ "x": 962.4660034179688,
+ "y": 129.60000610351562
},
{
- "x": 888.6333333333333,
- "y": 135.71532467532467
+ "x": 888.6329956054688,
+ "y": 135.71499633789062
},
{
"x": 770.5,
- "y": 102.57662337662339
+ "y": 102.57599639892578
}
],
"isCurve": true,
@@ -853,15 +853,15 @@
"route": [
{
"x": 552.5,
- "y": 97.97571942446044
+ "y": 97.9749984741211
},
{
- "x": 194.89999999999998,
- "y": 183.1951438848921
+ "x": 194.8990020751953,
+ "y": 183.19500732421875
},
{
"x": 105.5,
- "y": 220.3
+ "y": 220.3000030517578
},
{
"x": 105.5,
@@ -900,15 +900,15 @@
"route": [
{
"x": 552.5,
- "y": 122.67543859649123
+ "y": 122.67500305175781
},
{
- "x": 411.7,
- "y": 188.13508771929827
+ "x": 411.70001220703125,
+ "y": 188.13499450683594
},
{
"x": 376.5,
- "y": 220.3
+ "y": 220.3000030517578
},
{
"x": 376.5,
@@ -951,11 +951,11 @@
},
{
"x": 661.5,
- "y": 192.4
+ "y": 192.39999389648438
},
{
"x": 661.5,
- "y": 216.7
+ "y": 216.6999969482422
},
{
"x": 661.5,
@@ -994,15 +994,15 @@
"route": [
{
"x": 771.5,
- "y": 127.33524904214559
+ "y": 127.33499908447266
},
{
- "x": 892.3,
- "y": 189.06704980842912
+ "x": 892.2999877929688,
+ "y": 189.06700134277344
},
{
"x": 922.5,
- "y": 220.3
+ "y": 220.3000030517578
},
{
"x": 922.5,
@@ -1041,15 +1041,15 @@
"route": [
{
"x": 771.5,
- "y": 97.56194690265487
+ "y": 97.56099700927734
},
{
"x": 1135.5,
- "y": 183.112389380531
+ "y": 183.11199951171875
},
{
"x": 1226.5,
- "y": 220.3
+ "y": 220.3000030517578
},
{
"x": 1226.5,
diff --git a/e2etests/testdata/stable/ent2d2_basic/dagre/sketch.exp.svg b/e2etests/testdata/stable/ent2d2_basic/dagre/sketch.exp.svg
index e820b5b57..5dcea3c9b 100644
--- a/e2etests/testdata/stable/ent2d2_basic/dagre/sketch.exp.svg
+++ b/e2etests/testdata/stable/ent2d2_basic/dagre/sketch.exp.svg
@@ -1,17 +1,17 @@
-User id int PK parent_id int FK spouse_id int FK Pet id int PK owner_id int FK Card id int PK owner_id int FK Post id int PK text string author_id int FK Metadata id int PK age int Info id int PK content json.RawMessage spouse children/parent/ancestor pets/owner card/owner posts/author metadata/user info/user
+ .d2-631578152 .fill-N1{fill:#0A0F25;}
+ .d2-631578152 .fill-N2{fill:#676C7E;}
+ .d2-631578152 .fill-N3{fill:#9499AB;}
+ .d2-631578152 .fill-N4{fill:#CFD2DD;}
+ .d2-631578152 .fill-N5{fill:#DEE1EB;}
+ .d2-631578152 .fill-N6{fill:#EEF1F8;}
+ .d2-631578152 .fill-N7{fill:#FFFFFF;}
+ .d2-631578152 .fill-B1{fill:#0D32B2;}
+ .d2-631578152 .fill-B2{fill:#0D32B2;}
+ .d2-631578152 .fill-B3{fill:#E3E9FD;}
+ .d2-631578152 .fill-B4{fill:#E3E9FD;}
+ .d2-631578152 .fill-B5{fill:#EDF0FD;}
+ .d2-631578152 .fill-B6{fill:#F7F8FE;}
+ .d2-631578152 .fill-AA2{fill:#4A6FF3;}
+ .d2-631578152 .fill-AA4{fill:#EDF0FD;}
+ .d2-631578152 .fill-AA5{fill:#F7F8FE;}
+ .d2-631578152 .fill-AB4{fill:#EDF0FD;}
+ .d2-631578152 .fill-AB5{fill:#F7F8FE;}
+ .d2-631578152 .stroke-N1{stroke:#0A0F25;}
+ .d2-631578152 .stroke-N2{stroke:#676C7E;}
+ .d2-631578152 .stroke-N3{stroke:#9499AB;}
+ .d2-631578152 .stroke-N4{stroke:#CFD2DD;}
+ .d2-631578152 .stroke-N5{stroke:#DEE1EB;}
+ .d2-631578152 .stroke-N6{stroke:#EEF1F8;}
+ .d2-631578152 .stroke-N7{stroke:#FFFFFF;}
+ .d2-631578152 .stroke-B1{stroke:#0D32B2;}
+ .d2-631578152 .stroke-B2{stroke:#0D32B2;}
+ .d2-631578152 .stroke-B3{stroke:#E3E9FD;}
+ .d2-631578152 .stroke-B4{stroke:#E3E9FD;}
+ .d2-631578152 .stroke-B5{stroke:#EDF0FD;}
+ .d2-631578152 .stroke-B6{stroke:#F7F8FE;}
+ .d2-631578152 .stroke-AA2{stroke:#4A6FF3;}
+ .d2-631578152 .stroke-AA4{stroke:#EDF0FD;}
+ .d2-631578152 .stroke-AA5{stroke:#F7F8FE;}
+ .d2-631578152 .stroke-AB4{stroke:#EDF0FD;}
+ .d2-631578152 .stroke-AB5{stroke:#F7F8FE;}
+ .d2-631578152 .background-color-N1{background-color:#0A0F25;}
+ .d2-631578152 .background-color-N2{background-color:#676C7E;}
+ .d2-631578152 .background-color-N3{background-color:#9499AB;}
+ .d2-631578152 .background-color-N4{background-color:#CFD2DD;}
+ .d2-631578152 .background-color-N5{background-color:#DEE1EB;}
+ .d2-631578152 .background-color-N6{background-color:#EEF1F8;}
+ .d2-631578152 .background-color-N7{background-color:#FFFFFF;}
+ .d2-631578152 .background-color-B1{background-color:#0D32B2;}
+ .d2-631578152 .background-color-B2{background-color:#0D32B2;}
+ .d2-631578152 .background-color-B3{background-color:#E3E9FD;}
+ .d2-631578152 .background-color-B4{background-color:#E3E9FD;}
+ .d2-631578152 .background-color-B5{background-color:#EDF0FD;}
+ .d2-631578152 .background-color-B6{background-color:#F7F8FE;}
+ .d2-631578152 .background-color-AA2{background-color:#4A6FF3;}
+ .d2-631578152 .background-color-AA4{background-color:#EDF0FD;}
+ .d2-631578152 .background-color-AA5{background-color:#F7F8FE;}
+ .d2-631578152 .background-color-AB4{background-color:#EDF0FD;}
+ .d2-631578152 .background-color-AB5{background-color:#F7F8FE;}
+ .d2-631578152 .color-N1{color:#0A0F25;}
+ .d2-631578152 .color-N2{color:#676C7E;}
+ .d2-631578152 .color-N3{color:#9499AB;}
+ .d2-631578152 .color-N4{color:#CFD2DD;}
+ .d2-631578152 .color-N5{color:#DEE1EB;}
+ .d2-631578152 .color-N6{color:#EEF1F8;}
+ .d2-631578152 .color-N7{color:#FFFFFF;}
+ .d2-631578152 .color-B1{color:#0D32B2;}
+ .d2-631578152 .color-B2{color:#0D32B2;}
+ .d2-631578152 .color-B3{color:#E3E9FD;}
+ .d2-631578152 .color-B4{color:#E3E9FD;}
+ .d2-631578152 .color-B5{color:#EDF0FD;}
+ .d2-631578152 .color-B6{color:#F7F8FE;}
+ .d2-631578152 .color-AA2{color:#4A6FF3;}
+ .d2-631578152 .color-AA4{color:#EDF0FD;}
+ .d2-631578152 .color-AA5{color:#F7F8FE;}
+ .d2-631578152 .color-AB4{color:#EDF0FD;}
+ .d2-631578152 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>User id int PK parent_id int FK spouse_id int FK Pet id int PK owner_id int FK Card id int PK owner_id int FK Post id int PK text string author_id int FK Metadata id int PK age int Info id int PK content json.RawMessage spouse children/parent/ancestor pets/owner card/owner posts/author metadata/user info/user
diff --git a/e2etests/testdata/stable/ent2d2_basic/elk/board.exp.json b/e2etests/testdata/stable/ent2d2_basic/elk/board.exp.json
index fbf27f13b..17bfd3cda 100644
--- a/e2etests/testdata/stable/ent2d2_basic/elk/board.exp.json
+++ b/e2etests/testdata/stable/ent2d2_basic/elk/board.exp.json
@@ -778,11 +778,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 500.1666666666667,
+ "x": 500.1659851074219,
"y": 156
},
{
- "x": 500.1666666666667,
+ "x": 500.1659851074219,
"y": 196
},
{
@@ -824,11 +824,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 546.8333333333334,
+ "x": 546.8330078125,
"y": 156
},
{
- "x": 546.8333333333334,
+ "x": 546.8330078125,
"y": 246
},
{
@@ -908,11 +908,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 640.1666666666666,
+ "x": 640.166015625,
"y": 156
},
{
- "x": 640.1666666666666,
+ "x": 640.166015625,
"y": 246
},
{
@@ -954,11 +954,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 686.8333333333333,
+ "x": 686.8330078125,
"y": 156
},
{
- "x": 686.8333333333333,
+ "x": 686.8330078125,
"y": 196
},
{
diff --git a/e2etests/testdata/stable/ent2d2_basic/elk/sketch.exp.svg b/e2etests/testdata/stable/ent2d2_basic/elk/sketch.exp.svg
index a6417eaa8..205bb2374 100644
--- a/e2etests/testdata/stable/ent2d2_basic/elk/sketch.exp.svg
+++ b/e2etests/testdata/stable/ent2d2_basic/elk/sketch.exp.svg
@@ -1,17 +1,17 @@
-User id int PK parent_id int FK spouse_id int FK Pet id int PK owner_id int FK Card id int PK owner_id int FK Post id int PK text string author_id int FK Metadata id int PK age int Info id int PK content json.RawMessage spouse children/parent/ancestor pets/owner card/owner posts/author metadata/user info/user
+ .d2-702855757 .fill-N1{fill:#0A0F25;}
+ .d2-702855757 .fill-N2{fill:#676C7E;}
+ .d2-702855757 .fill-N3{fill:#9499AB;}
+ .d2-702855757 .fill-N4{fill:#CFD2DD;}
+ .d2-702855757 .fill-N5{fill:#DEE1EB;}
+ .d2-702855757 .fill-N6{fill:#EEF1F8;}
+ .d2-702855757 .fill-N7{fill:#FFFFFF;}
+ .d2-702855757 .fill-B1{fill:#0D32B2;}
+ .d2-702855757 .fill-B2{fill:#0D32B2;}
+ .d2-702855757 .fill-B3{fill:#E3E9FD;}
+ .d2-702855757 .fill-B4{fill:#E3E9FD;}
+ .d2-702855757 .fill-B5{fill:#EDF0FD;}
+ .d2-702855757 .fill-B6{fill:#F7F8FE;}
+ .d2-702855757 .fill-AA2{fill:#4A6FF3;}
+ .d2-702855757 .fill-AA4{fill:#EDF0FD;}
+ .d2-702855757 .fill-AA5{fill:#F7F8FE;}
+ .d2-702855757 .fill-AB4{fill:#EDF0FD;}
+ .d2-702855757 .fill-AB5{fill:#F7F8FE;}
+ .d2-702855757 .stroke-N1{stroke:#0A0F25;}
+ .d2-702855757 .stroke-N2{stroke:#676C7E;}
+ .d2-702855757 .stroke-N3{stroke:#9499AB;}
+ .d2-702855757 .stroke-N4{stroke:#CFD2DD;}
+ .d2-702855757 .stroke-N5{stroke:#DEE1EB;}
+ .d2-702855757 .stroke-N6{stroke:#EEF1F8;}
+ .d2-702855757 .stroke-N7{stroke:#FFFFFF;}
+ .d2-702855757 .stroke-B1{stroke:#0D32B2;}
+ .d2-702855757 .stroke-B2{stroke:#0D32B2;}
+ .d2-702855757 .stroke-B3{stroke:#E3E9FD;}
+ .d2-702855757 .stroke-B4{stroke:#E3E9FD;}
+ .d2-702855757 .stroke-B5{stroke:#EDF0FD;}
+ .d2-702855757 .stroke-B6{stroke:#F7F8FE;}
+ .d2-702855757 .stroke-AA2{stroke:#4A6FF3;}
+ .d2-702855757 .stroke-AA4{stroke:#EDF0FD;}
+ .d2-702855757 .stroke-AA5{stroke:#F7F8FE;}
+ .d2-702855757 .stroke-AB4{stroke:#EDF0FD;}
+ .d2-702855757 .stroke-AB5{stroke:#F7F8FE;}
+ .d2-702855757 .background-color-N1{background-color:#0A0F25;}
+ .d2-702855757 .background-color-N2{background-color:#676C7E;}
+ .d2-702855757 .background-color-N3{background-color:#9499AB;}
+ .d2-702855757 .background-color-N4{background-color:#CFD2DD;}
+ .d2-702855757 .background-color-N5{background-color:#DEE1EB;}
+ .d2-702855757 .background-color-N6{background-color:#EEF1F8;}
+ .d2-702855757 .background-color-N7{background-color:#FFFFFF;}
+ .d2-702855757 .background-color-B1{background-color:#0D32B2;}
+ .d2-702855757 .background-color-B2{background-color:#0D32B2;}
+ .d2-702855757 .background-color-B3{background-color:#E3E9FD;}
+ .d2-702855757 .background-color-B4{background-color:#E3E9FD;}
+ .d2-702855757 .background-color-B5{background-color:#EDF0FD;}
+ .d2-702855757 .background-color-B6{background-color:#F7F8FE;}
+ .d2-702855757 .background-color-AA2{background-color:#4A6FF3;}
+ .d2-702855757 .background-color-AA4{background-color:#EDF0FD;}
+ .d2-702855757 .background-color-AA5{background-color:#F7F8FE;}
+ .d2-702855757 .background-color-AB4{background-color:#EDF0FD;}
+ .d2-702855757 .background-color-AB5{background-color:#F7F8FE;}
+ .d2-702855757 .color-N1{color:#0A0F25;}
+ .d2-702855757 .color-N2{color:#676C7E;}
+ .d2-702855757 .color-N3{color:#9499AB;}
+ .d2-702855757 .color-N4{color:#CFD2DD;}
+ .d2-702855757 .color-N5{color:#DEE1EB;}
+ .d2-702855757 .color-N6{color:#EEF1F8;}
+ .d2-702855757 .color-N7{color:#FFFFFF;}
+ .d2-702855757 .color-B1{color:#0D32B2;}
+ .d2-702855757 .color-B2{color:#0D32B2;}
+ .d2-702855757 .color-B3{color:#E3E9FD;}
+ .d2-702855757 .color-B4{color:#E3E9FD;}
+ .d2-702855757 .color-B5{color:#EDF0FD;}
+ .d2-702855757 .color-B6{color:#F7F8FE;}
+ .d2-702855757 .color-AA2{color:#4A6FF3;}
+ .d2-702855757 .color-AA4{color:#EDF0FD;}
+ .d2-702855757 .color-AA5{color:#F7F8FE;}
+ .d2-702855757 .color-AB4{color:#EDF0FD;}
+ .d2-702855757 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>User id int PK parent_id int FK spouse_id int FK Pet id int PK owner_id int FK Card id int PK owner_id int FK Post id int PK text string author_id int FK Metadata id int PK age int Info id int PK content json.RawMessage spouse children/parent/ancestor pets/owner card/owner posts/author metadata/user info/user
diff --git a/e2etests/testdata/stable/ent2d2_right/dagre/board.exp.json b/e2etests/testdata/stable/ent2d2_right/dagre/board.exp.json
index e3cd89886..0ce03b06d 100644
--- a/e2etests/testdata/stable/ent2d2_right/dagre/board.exp.json
+++ b/e2etests/testdata/stable/ent2d2_right/dagre/board.exp.json
@@ -686,16 +686,16 @@
"labelPercentage": 0,
"route": [
{
- "x": 52.67464114832535,
+ "x": 52.67399978637695,
"y": 374.5
},
{
- "x": 10.53492822966507,
- "y": 428.3666666666667
+ "x": 10.534000396728516,
+ "y": 428.3659973144531
},
{
"x": 0,
- "y": 445.2
+ "y": 445.20001220703125
},
{
"x": 0,
@@ -703,38 +703,38 @@
},
{
"x": 0,
- "y": 455.3
+ "y": 455.29998779296875
},
{
- "x": 21.8,
- "y": 462.03333333333336
+ "x": 21.799999237060547,
+ "y": 462.0329895019531
},
{
"x": 54.5,
- "y": 467.08333333333337
+ "y": 467.0830078125
},
{
- "x": 87.2,
- "y": 472.1333333333333
+ "x": 87.19999694824219,
+ "y": 472.13299560546875
},
{
- "x": 130.8,
- "y": 472.1333333333333
+ "x": 130.8000030517578,
+ "y": 472.13299560546875
},
{
"x": 163.5,
- "y": 467.08333333333337
+ "y": 467.0830078125
},
{
- "x": 196.2,
- "y": 462.03333333333336
+ "x": 196.1999969482422,
+ "y": 462.0329895019531
},
{
- "x": 207.46507177033493,
- "y": 428.3666666666667
+ "x": 207.46499633789062,
+ "y": 428.3659973144531
},
{
- "x": 165.32535885167465,
+ "x": 165.3249969482422,
"y": 374.5
}
],
@@ -769,16 +769,16 @@
"labelPercentage": 0,
"route": [
{
- "x": 80.63373493975904,
+ "x": 80.63300323486328,
"y": 374.5
},
{
- "x": 16.126746987951805,
- "y": 538.2333333333333
+ "x": 16.125999450683594,
+ "y": 538.2329711914062
},
{
"x": 0,
- "y": 589.4
+ "y": 589.4000244140625
},
{
"x": 0,
@@ -786,38 +786,38 @@
},
{
"x": 0,
- "y": 620.1
+ "y": 620.0999755859375
},
{
- "x": 21.8,
- "y": 640.5666666666667
+ "x": 21.799999237060547,
+ "y": 640.5659790039062
},
{
"x": 54.5,
- "y": 655.9166666666667
+ "y": 655.916015625
},
{
- "x": 87.2,
- "y": 671.2666666666667
+ "x": 87.19999694824219,
+ "y": 671.2659912109375
},
{
- "x": 130.8,
- "y": 671.2666666666667
+ "x": 130.8000030517578,
+ "y": 671.2659912109375
},
{
"x": 163.5,
- "y": 655.9166666666667
+ "y": 655.916015625
},
{
- "x": 196.2,
- "y": 640.5666666666667
+ "x": 196.1999969482422,
+ "y": 640.5659790039062
},
{
- "x": 201.8732530120482,
- "y": 538.2333333333333
+ "x": 201.8730010986328,
+ "y": 538.2329711914062
},
{
- "x": 137.36626506024098,
+ "x": 137.36599731445312,
"y": 374.5
}
],
@@ -852,15 +852,15 @@
"labelPercentage": 0,
"route": [
{
- "x": 175.63983903420524,
+ "x": 175.63900756835938,
"y": 230.5
},
{
- "x": 306.32796780684106,
- "y": 89.29999999999998
+ "x": 306.3269958496094,
+ "y": 89.29900360107422
},
{
- "x": 374.6,
+ "x": 374.6000061035156,
"y": 54
},
{
@@ -900,14 +900,14 @@
"route": [
{
"x": 218,
- "y": 253.92391304347825
+ "y": 253.92300415039062
},
{
- "x": 314.8,
- "y": 210.78478260869565
+ "x": 314.79998779296875,
+ "y": 210.78399658203125
},
{
- "x": 374.6,
+ "x": 374.6000061035156,
"y": 200
},
{
@@ -947,14 +947,14 @@
"route": [
{
"x": 218,
- "y": 323.1152173913043
+ "y": 323.114990234375
},
{
- "x": 314.8,
- "y": 341.42304347826087
+ "x": 314.79998779296875,
+ "y": 341.4230041503906
},
{
- "x": 371.8,
+ "x": 371.79998779296875,
"y": 346
},
{
@@ -993,15 +993,15 @@
"labelPercentage": 0,
"route": [
{
- "x": 197.38786279683376,
+ "x": 197.38699340820312,
"y": 375.5
},
{
- "x": 310.67757255936675,
- "y": 468.7
+ "x": 310.677001953125,
+ "y": 468.70001220703125
},
{
- "x": 379.4,
+ "x": 379.3999938964844,
"y": 492
},
{
@@ -1040,15 +1040,15 @@
"labelPercentage": 0,
"route": [
{
- "x": 158.3591654247392,
+ "x": 158.35899353027344,
"y": 375.5
},
{
- "x": 302.87183308494787,
+ "x": 302.8710021972656,
"y": 585.5
},
{
- "x": 363.2,
+ "x": 363.20001220703125,
"y": 638
},
{
diff --git a/e2etests/testdata/stable/ent2d2_right/dagre/sketch.exp.svg b/e2etests/testdata/stable/ent2d2_right/dagre/sketch.exp.svg
index 884d3e0fc..b593b9671 100644
--- a/e2etests/testdata/stable/ent2d2_right/dagre/sketch.exp.svg
+++ b/e2etests/testdata/stable/ent2d2_right/dagre/sketch.exp.svg
@@ -1,17 +1,17 @@
-User id int PK parent_id int FK spouse_id int FK Pet id int PK owner_id int FK Card id int PK owner_id int FK Post id int PK text string author_id int FK Metadata id int PK age int Info id int PK content json.RawMessage spouse spouse children parent yo whoa hey pets/owner card/owner posts/author metadata/user info/user
+ .d2-2849620609 .fill-N1{fill:#0A0F25;}
+ .d2-2849620609 .fill-N2{fill:#676C7E;}
+ .d2-2849620609 .fill-N3{fill:#9499AB;}
+ .d2-2849620609 .fill-N4{fill:#CFD2DD;}
+ .d2-2849620609 .fill-N5{fill:#DEE1EB;}
+ .d2-2849620609 .fill-N6{fill:#EEF1F8;}
+ .d2-2849620609 .fill-N7{fill:#FFFFFF;}
+ .d2-2849620609 .fill-B1{fill:#0D32B2;}
+ .d2-2849620609 .fill-B2{fill:#0D32B2;}
+ .d2-2849620609 .fill-B3{fill:#E3E9FD;}
+ .d2-2849620609 .fill-B4{fill:#E3E9FD;}
+ .d2-2849620609 .fill-B5{fill:#EDF0FD;}
+ .d2-2849620609 .fill-B6{fill:#F7F8FE;}
+ .d2-2849620609 .fill-AA2{fill:#4A6FF3;}
+ .d2-2849620609 .fill-AA4{fill:#EDF0FD;}
+ .d2-2849620609 .fill-AA5{fill:#F7F8FE;}
+ .d2-2849620609 .fill-AB4{fill:#EDF0FD;}
+ .d2-2849620609 .fill-AB5{fill:#F7F8FE;}
+ .d2-2849620609 .stroke-N1{stroke:#0A0F25;}
+ .d2-2849620609 .stroke-N2{stroke:#676C7E;}
+ .d2-2849620609 .stroke-N3{stroke:#9499AB;}
+ .d2-2849620609 .stroke-N4{stroke:#CFD2DD;}
+ .d2-2849620609 .stroke-N5{stroke:#DEE1EB;}
+ .d2-2849620609 .stroke-N6{stroke:#EEF1F8;}
+ .d2-2849620609 .stroke-N7{stroke:#FFFFFF;}
+ .d2-2849620609 .stroke-B1{stroke:#0D32B2;}
+ .d2-2849620609 .stroke-B2{stroke:#0D32B2;}
+ .d2-2849620609 .stroke-B3{stroke:#E3E9FD;}
+ .d2-2849620609 .stroke-B4{stroke:#E3E9FD;}
+ .d2-2849620609 .stroke-B5{stroke:#EDF0FD;}
+ .d2-2849620609 .stroke-B6{stroke:#F7F8FE;}
+ .d2-2849620609 .stroke-AA2{stroke:#4A6FF3;}
+ .d2-2849620609 .stroke-AA4{stroke:#EDF0FD;}
+ .d2-2849620609 .stroke-AA5{stroke:#F7F8FE;}
+ .d2-2849620609 .stroke-AB4{stroke:#EDF0FD;}
+ .d2-2849620609 .stroke-AB5{stroke:#F7F8FE;}
+ .d2-2849620609 .background-color-N1{background-color:#0A0F25;}
+ .d2-2849620609 .background-color-N2{background-color:#676C7E;}
+ .d2-2849620609 .background-color-N3{background-color:#9499AB;}
+ .d2-2849620609 .background-color-N4{background-color:#CFD2DD;}
+ .d2-2849620609 .background-color-N5{background-color:#DEE1EB;}
+ .d2-2849620609 .background-color-N6{background-color:#EEF1F8;}
+ .d2-2849620609 .background-color-N7{background-color:#FFFFFF;}
+ .d2-2849620609 .background-color-B1{background-color:#0D32B2;}
+ .d2-2849620609 .background-color-B2{background-color:#0D32B2;}
+ .d2-2849620609 .background-color-B3{background-color:#E3E9FD;}
+ .d2-2849620609 .background-color-B4{background-color:#E3E9FD;}
+ .d2-2849620609 .background-color-B5{background-color:#EDF0FD;}
+ .d2-2849620609 .background-color-B6{background-color:#F7F8FE;}
+ .d2-2849620609 .background-color-AA2{background-color:#4A6FF3;}
+ .d2-2849620609 .background-color-AA4{background-color:#EDF0FD;}
+ .d2-2849620609 .background-color-AA5{background-color:#F7F8FE;}
+ .d2-2849620609 .background-color-AB4{background-color:#EDF0FD;}
+ .d2-2849620609 .background-color-AB5{background-color:#F7F8FE;}
+ .d2-2849620609 .color-N1{color:#0A0F25;}
+ .d2-2849620609 .color-N2{color:#676C7E;}
+ .d2-2849620609 .color-N3{color:#9499AB;}
+ .d2-2849620609 .color-N4{color:#CFD2DD;}
+ .d2-2849620609 .color-N5{color:#DEE1EB;}
+ .d2-2849620609 .color-N6{color:#EEF1F8;}
+ .d2-2849620609 .color-N7{color:#FFFFFF;}
+ .d2-2849620609 .color-B1{color:#0D32B2;}
+ .d2-2849620609 .color-B2{color:#0D32B2;}
+ .d2-2849620609 .color-B3{color:#E3E9FD;}
+ .d2-2849620609 .color-B4{color:#E3E9FD;}
+ .d2-2849620609 .color-B5{color:#EDF0FD;}
+ .d2-2849620609 .color-B6{color:#F7F8FE;}
+ .d2-2849620609 .color-AA2{color:#4A6FF3;}
+ .d2-2849620609 .color-AA4{color:#EDF0FD;}
+ .d2-2849620609 .color-AA5{color:#F7F8FE;}
+ .d2-2849620609 .color-AB4{color:#EDF0FD;}
+ .d2-2849620609 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>User id int PK parent_id int FK spouse_id int FK Pet id int PK owner_id int FK Card id int PK owner_id int FK Post id int PK text string author_id int FK Metadata id int PK age int Info id int PK content json.RawMessage spouse spouse children parent yo whoa hey pets/owner card/owner posts/author metadata/user info/user
diff --git a/e2etests/testdata/stable/ent2d2_right/elk/board.exp.json b/e2etests/testdata/stable/ent2d2_right/elk/board.exp.json
index 6843f9ded..c3f32eced 100644
--- a/e2etests/testdata/stable/ent2d2_right/elk/board.exp.json
+++ b/e2etests/testdata/stable/ent2d2_right/elk/board.exp.json
@@ -686,19 +686,19 @@
"labelPercentage": 0,
"route": [
{
- "x": 84.66666666666666,
+ "x": 84.66600036621094,
"y": 200
},
{
- "x": 84.66666666666666,
+ "x": 84.66600036621094,
"y": 150
},
{
- "x": 157.33333333333331,
+ "x": 157.33299255371094,
"y": 150
},
{
- "x": 157.33333333333331,
+ "x": 157.33299255371094,
"y": 200
}
],
@@ -732,19 +732,19 @@
"labelPercentage": 0,
"route": [
{
- "x": 157.33333333333331,
+ "x": 157.33299255371094,
"y": 480
},
{
- "x": 157.33333333333331,
+ "x": 157.33299255371094,
"y": 530
},
{
- "x": 84.66666666666666,
+ "x": 84.66600036621094,
"y": 530
},
{
- "x": 84.66666666666666,
+ "x": 84.66600036621094,
"y": 480
}
],
@@ -779,11 +779,11 @@
"route": [
{
"x": 230,
- "y": 246.66666666666666
+ "y": 246.66600036621094
},
{
"x": 270,
- "y": 246.66666666666666
+ "y": 246.66600036621094
},
{
"x": 270,
@@ -825,11 +825,11 @@
"route": [
{
"x": 230,
- "y": 293.3333333333333
+ "y": 293.3330078125
},
{
"x": 320,
- "y": 293.3333333333333
+ "y": 293.3330078125
},
{
"x": 320,
@@ -909,11 +909,11 @@
"route": [
{
"x": 230,
- "y": 386.66666666666663
+ "y": 386.6659851074219
},
{
"x": 320,
- "y": 386.66666666666663
+ "y": 386.6659851074219
},
{
"x": 320,
@@ -955,11 +955,11 @@
"route": [
{
"x": 230,
- "y": 433.3333333333333
+ "y": 433.3330078125
},
{
"x": 270,
- "y": 433.3333333333333
+ "y": 433.3330078125
},
{
"x": 270,
diff --git a/e2etests/testdata/stable/ent2d2_right/elk/sketch.exp.svg b/e2etests/testdata/stable/ent2d2_right/elk/sketch.exp.svg
index e0fdbba72..8a77d825b 100644
--- a/e2etests/testdata/stable/ent2d2_right/elk/sketch.exp.svg
+++ b/e2etests/testdata/stable/ent2d2_right/elk/sketch.exp.svg
@@ -1,17 +1,17 @@
-User id int PK parent_id int FK spouse_id int FK Pet id int PK owner_id int FK Card id int PK owner_id int FK Post id int PK text string author_id int FK Metadata id int PK age int Info id int PK content json.RawMessage spouse spouse children parent yo whoa hey pets/owner card/owner posts/author metadata/user info/user
+ .d2-3364457375 .fill-N1{fill:#0A0F25;}
+ .d2-3364457375 .fill-N2{fill:#676C7E;}
+ .d2-3364457375 .fill-N3{fill:#9499AB;}
+ .d2-3364457375 .fill-N4{fill:#CFD2DD;}
+ .d2-3364457375 .fill-N5{fill:#DEE1EB;}
+ .d2-3364457375 .fill-N6{fill:#EEF1F8;}
+ .d2-3364457375 .fill-N7{fill:#FFFFFF;}
+ .d2-3364457375 .fill-B1{fill:#0D32B2;}
+ .d2-3364457375 .fill-B2{fill:#0D32B2;}
+ .d2-3364457375 .fill-B3{fill:#E3E9FD;}
+ .d2-3364457375 .fill-B4{fill:#E3E9FD;}
+ .d2-3364457375 .fill-B5{fill:#EDF0FD;}
+ .d2-3364457375 .fill-B6{fill:#F7F8FE;}
+ .d2-3364457375 .fill-AA2{fill:#4A6FF3;}
+ .d2-3364457375 .fill-AA4{fill:#EDF0FD;}
+ .d2-3364457375 .fill-AA5{fill:#F7F8FE;}
+ .d2-3364457375 .fill-AB4{fill:#EDF0FD;}
+ .d2-3364457375 .fill-AB5{fill:#F7F8FE;}
+ .d2-3364457375 .stroke-N1{stroke:#0A0F25;}
+ .d2-3364457375 .stroke-N2{stroke:#676C7E;}
+ .d2-3364457375 .stroke-N3{stroke:#9499AB;}
+ .d2-3364457375 .stroke-N4{stroke:#CFD2DD;}
+ .d2-3364457375 .stroke-N5{stroke:#DEE1EB;}
+ .d2-3364457375 .stroke-N6{stroke:#EEF1F8;}
+ .d2-3364457375 .stroke-N7{stroke:#FFFFFF;}
+ .d2-3364457375 .stroke-B1{stroke:#0D32B2;}
+ .d2-3364457375 .stroke-B2{stroke:#0D32B2;}
+ .d2-3364457375 .stroke-B3{stroke:#E3E9FD;}
+ .d2-3364457375 .stroke-B4{stroke:#E3E9FD;}
+ .d2-3364457375 .stroke-B5{stroke:#EDF0FD;}
+ .d2-3364457375 .stroke-B6{stroke:#F7F8FE;}
+ .d2-3364457375 .stroke-AA2{stroke:#4A6FF3;}
+ .d2-3364457375 .stroke-AA4{stroke:#EDF0FD;}
+ .d2-3364457375 .stroke-AA5{stroke:#F7F8FE;}
+ .d2-3364457375 .stroke-AB4{stroke:#EDF0FD;}
+ .d2-3364457375 .stroke-AB5{stroke:#F7F8FE;}
+ .d2-3364457375 .background-color-N1{background-color:#0A0F25;}
+ .d2-3364457375 .background-color-N2{background-color:#676C7E;}
+ .d2-3364457375 .background-color-N3{background-color:#9499AB;}
+ .d2-3364457375 .background-color-N4{background-color:#CFD2DD;}
+ .d2-3364457375 .background-color-N5{background-color:#DEE1EB;}
+ .d2-3364457375 .background-color-N6{background-color:#EEF1F8;}
+ .d2-3364457375 .background-color-N7{background-color:#FFFFFF;}
+ .d2-3364457375 .background-color-B1{background-color:#0D32B2;}
+ .d2-3364457375 .background-color-B2{background-color:#0D32B2;}
+ .d2-3364457375 .background-color-B3{background-color:#E3E9FD;}
+ .d2-3364457375 .background-color-B4{background-color:#E3E9FD;}
+ .d2-3364457375 .background-color-B5{background-color:#EDF0FD;}
+ .d2-3364457375 .background-color-B6{background-color:#F7F8FE;}
+ .d2-3364457375 .background-color-AA2{background-color:#4A6FF3;}
+ .d2-3364457375 .background-color-AA4{background-color:#EDF0FD;}
+ .d2-3364457375 .background-color-AA5{background-color:#F7F8FE;}
+ .d2-3364457375 .background-color-AB4{background-color:#EDF0FD;}
+ .d2-3364457375 .background-color-AB5{background-color:#F7F8FE;}
+ .d2-3364457375 .color-N1{color:#0A0F25;}
+ .d2-3364457375 .color-N2{color:#676C7E;}
+ .d2-3364457375 .color-N3{color:#9499AB;}
+ .d2-3364457375 .color-N4{color:#CFD2DD;}
+ .d2-3364457375 .color-N5{color:#DEE1EB;}
+ .d2-3364457375 .color-N6{color:#EEF1F8;}
+ .d2-3364457375 .color-N7{color:#FFFFFF;}
+ .d2-3364457375 .color-B1{color:#0D32B2;}
+ .d2-3364457375 .color-B2{color:#0D32B2;}
+ .d2-3364457375 .color-B3{color:#E3E9FD;}
+ .d2-3364457375 .color-B4{color:#E3E9FD;}
+ .d2-3364457375 .color-B5{color:#EDF0FD;}
+ .d2-3364457375 .color-B6{color:#F7F8FE;}
+ .d2-3364457375 .color-AA2{color:#4A6FF3;}
+ .d2-3364457375 .color-AA4{color:#EDF0FD;}
+ .d2-3364457375 .color-AA5{color:#F7F8FE;}
+ .d2-3364457375 .color-AB4{color:#EDF0FD;}
+ .d2-3364457375 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>User id int PK parent_id int FK spouse_id int FK Pet id int PK owner_id int FK Card id int PK owner_id int FK Post id int PK text string author_id int FK Metadata id int PK age int Info id int PK content json.RawMessage spouse spouse children parent yo whoa hey pets/owner card/owner posts/author metadata/user info/user
diff --git a/e2etests/testdata/stable/executive_grid/dagre/sketch.exp.svg b/e2etests/testdata/stable/executive_grid/dagre/sketch.exp.svg
index b2e839372..fb494bef5 100644
--- a/e2etests/testdata/stable/executive_grid/dagre/sketch.exp.svg
+++ b/e2etests/testdata/stable/executive_grid/dagre/sketch.exp.svg
@@ -1,10 +1,10 @@
-alpha beta gamma
+ .d2-524172161 .fill-N1{fill:#0A0F25;}
+ .d2-524172161 .fill-N2{fill:#676C7E;}
+ .d2-524172161 .fill-N3{fill:#9499AB;}
+ .d2-524172161 .fill-N4{fill:#CFD2DD;}
+ .d2-524172161 .fill-N5{fill:#DEE1EB;}
+ .d2-524172161 .fill-N6{fill:#EEF1F8;}
+ .d2-524172161 .fill-N7{fill:#FFFFFF;}
+ .d2-524172161 .fill-B1{fill:#0D32B2;}
+ .d2-524172161 .fill-B2{fill:#0D32B2;}
+ .d2-524172161 .fill-B3{fill:#E3E9FD;}
+ .d2-524172161 .fill-B4{fill:#E3E9FD;}
+ .d2-524172161 .fill-B5{fill:#EDF0FD;}
+ .d2-524172161 .fill-B6{fill:#F7F8FE;}
+ .d2-524172161 .fill-AA2{fill:#4A6FF3;}
+ .d2-524172161 .fill-AA4{fill:#EDF0FD;}
+ .d2-524172161 .fill-AA5{fill:#F7F8FE;}
+ .d2-524172161 .fill-AB4{fill:#EDF0FD;}
+ .d2-524172161 .fill-AB5{fill:#F7F8FE;}
+ .d2-524172161 .stroke-N1{stroke:#0A0F25;}
+ .d2-524172161 .stroke-N2{stroke:#676C7E;}
+ .d2-524172161 .stroke-N3{stroke:#9499AB;}
+ .d2-524172161 .stroke-N4{stroke:#CFD2DD;}
+ .d2-524172161 .stroke-N5{stroke:#DEE1EB;}
+ .d2-524172161 .stroke-N6{stroke:#EEF1F8;}
+ .d2-524172161 .stroke-N7{stroke:#FFFFFF;}
+ .d2-524172161 .stroke-B1{stroke:#0D32B2;}
+ .d2-524172161 .stroke-B2{stroke:#0D32B2;}
+ .d2-524172161 .stroke-B3{stroke:#E3E9FD;}
+ .d2-524172161 .stroke-B4{stroke:#E3E9FD;}
+ .d2-524172161 .stroke-B5{stroke:#EDF0FD;}
+ .d2-524172161 .stroke-B6{stroke:#F7F8FE;}
+ .d2-524172161 .stroke-AA2{stroke:#4A6FF3;}
+ .d2-524172161 .stroke-AA4{stroke:#EDF0FD;}
+ .d2-524172161 .stroke-AA5{stroke:#F7F8FE;}
+ .d2-524172161 .stroke-AB4{stroke:#EDF0FD;}
+ .d2-524172161 .stroke-AB5{stroke:#F7F8FE;}
+ .d2-524172161 .background-color-N1{background-color:#0A0F25;}
+ .d2-524172161 .background-color-N2{background-color:#676C7E;}
+ .d2-524172161 .background-color-N3{background-color:#9499AB;}
+ .d2-524172161 .background-color-N4{background-color:#CFD2DD;}
+ .d2-524172161 .background-color-N5{background-color:#DEE1EB;}
+ .d2-524172161 .background-color-N6{background-color:#EEF1F8;}
+ .d2-524172161 .background-color-N7{background-color:#FFFFFF;}
+ .d2-524172161 .background-color-B1{background-color:#0D32B2;}
+ .d2-524172161 .background-color-B2{background-color:#0D32B2;}
+ .d2-524172161 .background-color-B3{background-color:#E3E9FD;}
+ .d2-524172161 .background-color-B4{background-color:#E3E9FD;}
+ .d2-524172161 .background-color-B5{background-color:#EDF0FD;}
+ .d2-524172161 .background-color-B6{background-color:#F7F8FE;}
+ .d2-524172161 .background-color-AA2{background-color:#4A6FF3;}
+ .d2-524172161 .background-color-AA4{background-color:#EDF0FD;}
+ .d2-524172161 .background-color-AA5{background-color:#F7F8FE;}
+ .d2-524172161 .background-color-AB4{background-color:#EDF0FD;}
+ .d2-524172161 .background-color-AB5{background-color:#F7F8FE;}
+ .d2-524172161 .color-N1{color:#0A0F25;}
+ .d2-524172161 .color-N2{color:#676C7E;}
+ .d2-524172161 .color-N3{color:#9499AB;}
+ .d2-524172161 .color-N4{color:#CFD2DD;}
+ .d2-524172161 .color-N5{color:#DEE1EB;}
+ .d2-524172161 .color-N6{color:#EEF1F8;}
+ .d2-524172161 .color-N7{color:#FFFFFF;}
+ .d2-524172161 .color-B1{color:#0D32B2;}
+ .d2-524172161 .color-B2{color:#0D32B2;}
+ .d2-524172161 .color-B3{color:#E3E9FD;}
+ .d2-524172161 .color-B4{color:#E3E9FD;}
+ .d2-524172161 .color-B5{color:#EDF0FD;}
+ .d2-524172161 .color-B6{color:#F7F8FE;}
+ .d2-524172161 .color-AA2{color:#4A6FF3;}
+ .d2-524172161 .color-AA4{color:#EDF0FD;}
+ .d2-524172161 .color-AA5{color:#F7F8FE;}
+ .d2-524172161 .color-AB4{color:#EDF0FD;}
+ .d2-524172161 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>alpha beta gamma
\ No newline at end of file
diff --git a/e2etests/testdata/stable/font_colors/elk/sketch.exp.svg b/e2etests/testdata/stable/font_colors/elk/sketch.exp.svg
index 3c9247a16..1f41b9fda 100644
--- a/e2etests/testdata/stable/font_colors/elk/sketch.exp.svg
+++ b/e2etests/testdata/stable/font_colors/elk/sketch.exp.svg
@@ -1,17 +1,17 @@
-size XS size S size M size L size XL size XXL size XXXL custom 8 custom 12 custom 18 custom 21 custom 64 custom 10 custom 15 custom 48
+ .d2-4083473290 .fill-N1{fill:#0A0F25;}
+ .d2-4083473290 .fill-N2{fill:#676C7E;}
+ .d2-4083473290 .fill-N3{fill:#9499AB;}
+ .d2-4083473290 .fill-N4{fill:#CFD2DD;}
+ .d2-4083473290 .fill-N5{fill:#DEE1EB;}
+ .d2-4083473290 .fill-N6{fill:#EEF1F8;}
+ .d2-4083473290 .fill-N7{fill:#FFFFFF;}
+ .d2-4083473290 .fill-B1{fill:#0D32B2;}
+ .d2-4083473290 .fill-B2{fill:#0D32B2;}
+ .d2-4083473290 .fill-B3{fill:#E3E9FD;}
+ .d2-4083473290 .fill-B4{fill:#E3E9FD;}
+ .d2-4083473290 .fill-B5{fill:#EDF0FD;}
+ .d2-4083473290 .fill-B6{fill:#F7F8FE;}
+ .d2-4083473290 .fill-AA2{fill:#4A6FF3;}
+ .d2-4083473290 .fill-AA4{fill:#EDF0FD;}
+ .d2-4083473290 .fill-AA5{fill:#F7F8FE;}
+ .d2-4083473290 .fill-AB4{fill:#EDF0FD;}
+ .d2-4083473290 .fill-AB5{fill:#F7F8FE;}
+ .d2-4083473290 .stroke-N1{stroke:#0A0F25;}
+ .d2-4083473290 .stroke-N2{stroke:#676C7E;}
+ .d2-4083473290 .stroke-N3{stroke:#9499AB;}
+ .d2-4083473290 .stroke-N4{stroke:#CFD2DD;}
+ .d2-4083473290 .stroke-N5{stroke:#DEE1EB;}
+ .d2-4083473290 .stroke-N6{stroke:#EEF1F8;}
+ .d2-4083473290 .stroke-N7{stroke:#FFFFFF;}
+ .d2-4083473290 .stroke-B1{stroke:#0D32B2;}
+ .d2-4083473290 .stroke-B2{stroke:#0D32B2;}
+ .d2-4083473290 .stroke-B3{stroke:#E3E9FD;}
+ .d2-4083473290 .stroke-B4{stroke:#E3E9FD;}
+ .d2-4083473290 .stroke-B5{stroke:#EDF0FD;}
+ .d2-4083473290 .stroke-B6{stroke:#F7F8FE;}
+ .d2-4083473290 .stroke-AA2{stroke:#4A6FF3;}
+ .d2-4083473290 .stroke-AA4{stroke:#EDF0FD;}
+ .d2-4083473290 .stroke-AA5{stroke:#F7F8FE;}
+ .d2-4083473290 .stroke-AB4{stroke:#EDF0FD;}
+ .d2-4083473290 .stroke-AB5{stroke:#F7F8FE;}
+ .d2-4083473290 .background-color-N1{background-color:#0A0F25;}
+ .d2-4083473290 .background-color-N2{background-color:#676C7E;}
+ .d2-4083473290 .background-color-N3{background-color:#9499AB;}
+ .d2-4083473290 .background-color-N4{background-color:#CFD2DD;}
+ .d2-4083473290 .background-color-N5{background-color:#DEE1EB;}
+ .d2-4083473290 .background-color-N6{background-color:#EEF1F8;}
+ .d2-4083473290 .background-color-N7{background-color:#FFFFFF;}
+ .d2-4083473290 .background-color-B1{background-color:#0D32B2;}
+ .d2-4083473290 .background-color-B2{background-color:#0D32B2;}
+ .d2-4083473290 .background-color-B3{background-color:#E3E9FD;}
+ .d2-4083473290 .background-color-B4{background-color:#E3E9FD;}
+ .d2-4083473290 .background-color-B5{background-color:#EDF0FD;}
+ .d2-4083473290 .background-color-B6{background-color:#F7F8FE;}
+ .d2-4083473290 .background-color-AA2{background-color:#4A6FF3;}
+ .d2-4083473290 .background-color-AA4{background-color:#EDF0FD;}
+ .d2-4083473290 .background-color-AA5{background-color:#F7F8FE;}
+ .d2-4083473290 .background-color-AB4{background-color:#EDF0FD;}
+ .d2-4083473290 .background-color-AB5{background-color:#F7F8FE;}
+ .d2-4083473290 .color-N1{color:#0A0F25;}
+ .d2-4083473290 .color-N2{color:#676C7E;}
+ .d2-4083473290 .color-N3{color:#9499AB;}
+ .d2-4083473290 .color-N4{color:#CFD2DD;}
+ .d2-4083473290 .color-N5{color:#DEE1EB;}
+ .d2-4083473290 .color-N6{color:#EEF1F8;}
+ .d2-4083473290 .color-N7{color:#FFFFFF;}
+ .d2-4083473290 .color-B1{color:#0D32B2;}
+ .d2-4083473290 .color-B2{color:#0D32B2;}
+ .d2-4083473290 .color-B3{color:#E3E9FD;}
+ .d2-4083473290 .color-B4{color:#E3E9FD;}
+ .d2-4083473290 .color-B5{color:#EDF0FD;}
+ .d2-4083473290 .color-B6{color:#F7F8FE;}
+ .d2-4083473290 .color-AA2{color:#4A6FF3;}
+ .d2-4083473290 .color-AA4{color:#EDF0FD;}
+ .d2-4083473290 .color-AA5{color:#F7F8FE;}
+ .d2-4083473290 .color-AB4{color:#EDF0FD;}
+ .d2-4083473290 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>size XS size S size M size L size XL size XXL size XXXL custom 8 custom 12 custom 18 custom 21 custom 64 custom 10 custom 15 custom 48
diff --git a/e2etests/testdata/stable/font_sizes/elk/sketch.exp.svg b/e2etests/testdata/stable/font_sizes/elk/sketch.exp.svg
index 3a541cf2d..c9d47a098 100644
--- a/e2etests/testdata/stable/font_sizes/elk/sketch.exp.svg
+++ b/e2etests/testdata/stable/font_sizes/elk/sketch.exp.svg
@@ -1,17 +1,17 @@
-vertical-gap 30 horizontal-gap 100 vertical-gap 100 horizontal-gap 30 gap 0 gap 10 vertical-gap 100 a b c d e f g h i a b c d e f g h i a b c d e f g h i a b c d e f g h i
-
+ .d2-1828154335 .fill-N1{fill:#0A0F25;}
+ .d2-1828154335 .fill-N2{fill:#676C7E;}
+ .d2-1828154335 .fill-N3{fill:#9499AB;}
+ .d2-1828154335 .fill-N4{fill:#CFD2DD;}
+ .d2-1828154335 .fill-N5{fill:#DEE1EB;}
+ .d2-1828154335 .fill-N6{fill:#EEF1F8;}
+ .d2-1828154335 .fill-N7{fill:#FFFFFF;}
+ .d2-1828154335 .fill-B1{fill:#0D32B2;}
+ .d2-1828154335 .fill-B2{fill:#0D32B2;}
+ .d2-1828154335 .fill-B3{fill:#E3E9FD;}
+ .d2-1828154335 .fill-B4{fill:#E3E9FD;}
+ .d2-1828154335 .fill-B5{fill:#EDF0FD;}
+ .d2-1828154335 .fill-B6{fill:#F7F8FE;}
+ .d2-1828154335 .fill-AA2{fill:#4A6FF3;}
+ .d2-1828154335 .fill-AA4{fill:#EDF0FD;}
+ .d2-1828154335 .fill-AA5{fill:#F7F8FE;}
+ .d2-1828154335 .fill-AB4{fill:#EDF0FD;}
+ .d2-1828154335 .fill-AB5{fill:#F7F8FE;}
+ .d2-1828154335 .stroke-N1{stroke:#0A0F25;}
+ .d2-1828154335 .stroke-N2{stroke:#676C7E;}
+ .d2-1828154335 .stroke-N3{stroke:#9499AB;}
+ .d2-1828154335 .stroke-N4{stroke:#CFD2DD;}
+ .d2-1828154335 .stroke-N5{stroke:#DEE1EB;}
+ .d2-1828154335 .stroke-N6{stroke:#EEF1F8;}
+ .d2-1828154335 .stroke-N7{stroke:#FFFFFF;}
+ .d2-1828154335 .stroke-B1{stroke:#0D32B2;}
+ .d2-1828154335 .stroke-B2{stroke:#0D32B2;}
+ .d2-1828154335 .stroke-B3{stroke:#E3E9FD;}
+ .d2-1828154335 .stroke-B4{stroke:#E3E9FD;}
+ .d2-1828154335 .stroke-B5{stroke:#EDF0FD;}
+ .d2-1828154335 .stroke-B6{stroke:#F7F8FE;}
+ .d2-1828154335 .stroke-AA2{stroke:#4A6FF3;}
+ .d2-1828154335 .stroke-AA4{stroke:#EDF0FD;}
+ .d2-1828154335 .stroke-AA5{stroke:#F7F8FE;}
+ .d2-1828154335 .stroke-AB4{stroke:#EDF0FD;}
+ .d2-1828154335 .stroke-AB5{stroke:#F7F8FE;}
+ .d2-1828154335 .background-color-N1{background-color:#0A0F25;}
+ .d2-1828154335 .background-color-N2{background-color:#676C7E;}
+ .d2-1828154335 .background-color-N3{background-color:#9499AB;}
+ .d2-1828154335 .background-color-N4{background-color:#CFD2DD;}
+ .d2-1828154335 .background-color-N5{background-color:#DEE1EB;}
+ .d2-1828154335 .background-color-N6{background-color:#EEF1F8;}
+ .d2-1828154335 .background-color-N7{background-color:#FFFFFF;}
+ .d2-1828154335 .background-color-B1{background-color:#0D32B2;}
+ .d2-1828154335 .background-color-B2{background-color:#0D32B2;}
+ .d2-1828154335 .background-color-B3{background-color:#E3E9FD;}
+ .d2-1828154335 .background-color-B4{background-color:#E3E9FD;}
+ .d2-1828154335 .background-color-B5{background-color:#EDF0FD;}
+ .d2-1828154335 .background-color-B6{background-color:#F7F8FE;}
+ .d2-1828154335 .background-color-AA2{background-color:#4A6FF3;}
+ .d2-1828154335 .background-color-AA4{background-color:#EDF0FD;}
+ .d2-1828154335 .background-color-AA5{background-color:#F7F8FE;}
+ .d2-1828154335 .background-color-AB4{background-color:#EDF0FD;}
+ .d2-1828154335 .background-color-AB5{background-color:#F7F8FE;}
+ .d2-1828154335 .color-N1{color:#0A0F25;}
+ .d2-1828154335 .color-N2{color:#676C7E;}
+ .d2-1828154335 .color-N3{color:#9499AB;}
+ .d2-1828154335 .color-N4{color:#CFD2DD;}
+ .d2-1828154335 .color-N5{color:#DEE1EB;}
+ .d2-1828154335 .color-N6{color:#EEF1F8;}
+ .d2-1828154335 .color-N7{color:#FFFFFF;}
+ .d2-1828154335 .color-B1{color:#0D32B2;}
+ .d2-1828154335 .color-B2{color:#0D32B2;}
+ .d2-1828154335 .color-B3{color:#E3E9FD;}
+ .d2-1828154335 .color-B4{color:#E3E9FD;}
+ .d2-1828154335 .color-B5{color:#EDF0FD;}
+ .d2-1828154335 .color-B6{color:#F7F8FE;}
+ .d2-1828154335 .color-AA2{color:#4A6FF3;}
+ .d2-1828154335 .color-AA4{color:#EDF0FD;}
+ .d2-1828154335 .color-AA5{color:#F7F8FE;}
+ .d2-1828154335 .color-AB4{color:#EDF0FD;}
+ .d2-1828154335 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>vertical-gap 30 horizontal-gap 100 vertical-gap 100 horizontal-gap 30 gap 0 gap 10 vertical-gap 100 a b c d e f g h i a b c d e f g h i a b c d e f g h i a b c d e f g h i
+
\ No newline at end of file
diff --git a/e2etests/testdata/stable/grid_gap/elk/board.exp.json b/e2etests/testdata/stable/grid_gap/elk/board.exp.json
index 97349cc99..74816850f 100644
--- a/e2etests/testdata/stable/grid_gap/elk/board.exp.json
+++ b/e2etests/testdata/stable/grid_gap/elk/board.exp.json
@@ -8,10 +8,10 @@
"type": "rectangle",
"pos": {
"x": 12,
- "y": 82
+ "y": 144
},
- "width": 480,
- "height": 378,
+ "width": 560,
+ "height": 334,
"opacity": 1,
"strokeDash": 0,
"strokeWidth": 2,
@@ -48,8 +48,8 @@
"id": "vertical-gap 30 horizontal-gap 100.a",
"type": "rectangle",
"pos": {
- "x": 72,
- "y": 142
+ "x": 112,
+ "y": 190
},
"width": 54,
"height": 66,
@@ -89,8 +89,8 @@
"id": "vertical-gap 30 horizontal-gap 100.b",
"type": "rectangle",
"pos": {
- "x": 226,
- "y": 142
+ "x": 266,
+ "y": 190
},
"width": 53,
"height": 66,
@@ -130,8 +130,8 @@
"id": "vertical-gap 30 horizontal-gap 100.c",
"type": "rectangle",
"pos": {
- "x": 379,
- "y": 142
+ "x": 419,
+ "y": 190
},
"width": 53,
"height": 66,
@@ -171,8 +171,8 @@
"id": "vertical-gap 30 horizontal-gap 100.d",
"type": "rectangle",
"pos": {
- "x": 72,
- "y": 238
+ "x": 112,
+ "y": 286
},
"width": 54,
"height": 66,
@@ -212,8 +212,8 @@
"id": "vertical-gap 30 horizontal-gap 100.e",
"type": "rectangle",
"pos": {
- "x": 226,
- "y": 238
+ "x": 266,
+ "y": 286
},
"width": 53,
"height": 66,
@@ -253,8 +253,8 @@
"id": "vertical-gap 30 horizontal-gap 100.f",
"type": "rectangle",
"pos": {
- "x": 379,
- "y": 238
+ "x": 419,
+ "y": 286
},
"width": 53,
"height": 66,
@@ -294,8 +294,8 @@
"id": "vertical-gap 30 horizontal-gap 100.g",
"type": "rectangle",
"pos": {
- "x": 72,
- "y": 334
+ "x": 112,
+ "y": 382
},
"width": 54,
"height": 66,
@@ -335,8 +335,8 @@
"id": "vertical-gap 30 horizontal-gap 100.h",
"type": "rectangle",
"pos": {
- "x": 226,
- "y": 334
+ "x": 266,
+ "y": 382
},
"width": 53,
"height": 66,
@@ -376,8 +376,8 @@
"id": "vertical-gap 30 horizontal-gap 100.i",
"type": "rectangle",
"pos": {
- "x": 379,
- "y": 334
+ "x": 419,
+ "y": 382
},
"width": 53,
"height": 66,
@@ -417,11 +417,11 @@
"id": "vertical-gap 100 horizontal-gap 30",
"type": "rectangle",
"pos": {
- "x": 512,
+ "x": 592,
"y": 12
},
"width": 408,
- "height": 518,
+ "height": 598,
"opacity": 1,
"strokeDash": 0,
"strokeWidth": 2,
@@ -458,8 +458,8 @@
"id": "vertical-gap 100 horizontal-gap 30.a",
"type": "rectangle",
"pos": {
- "x": 606,
- "y": 72
+ "x": 686,
+ "y": 112
},
"width": 54,
"height": 66,
@@ -499,8 +499,8 @@
"id": "vertical-gap 100 horizontal-gap 30.b",
"type": "rectangle",
"pos": {
- "x": 690,
- "y": 72
+ "x": 770,
+ "y": 112
},
"width": 53,
"height": 66,
@@ -540,8 +540,8 @@
"id": "vertical-gap 100 horizontal-gap 30.c",
"type": "rectangle",
"pos": {
- "x": 773,
- "y": 72
+ "x": 853,
+ "y": 112
},
"width": 53,
"height": 66,
@@ -581,8 +581,8 @@
"id": "vertical-gap 100 horizontal-gap 30.d",
"type": "rectangle",
"pos": {
- "x": 606,
- "y": 238
+ "x": 686,
+ "y": 278
},
"width": 54,
"height": 66,
@@ -622,8 +622,8 @@
"id": "vertical-gap 100 horizontal-gap 30.e",
"type": "rectangle",
"pos": {
- "x": 690,
- "y": 238
+ "x": 770,
+ "y": 278
},
"width": 53,
"height": 66,
@@ -663,8 +663,8 @@
"id": "vertical-gap 100 horizontal-gap 30.f",
"type": "rectangle",
"pos": {
- "x": 773,
- "y": 238
+ "x": 853,
+ "y": 278
},
"width": 53,
"height": 66,
@@ -704,8 +704,8 @@
"id": "vertical-gap 100 horizontal-gap 30.g",
"type": "rectangle",
"pos": {
- "x": 606,
- "y": 404
+ "x": 686,
+ "y": 444
},
"width": 54,
"height": 66,
@@ -745,8 +745,8 @@
"id": "vertical-gap 100 horizontal-gap 30.h",
"type": "rectangle",
"pos": {
- "x": 690,
- "y": 404
+ "x": 770,
+ "y": 444
},
"width": 53,
"height": 66,
@@ -786,8 +786,8 @@
"id": "vertical-gap 100 horizontal-gap 30.i",
"type": "rectangle",
"pos": {
- "x": 773,
- "y": 404
+ "x": 853,
+ "y": 444
},
"width": 53,
"height": 66,
@@ -827,11 +827,11 @@
"id": "gap 0",
"type": "rectangle",
"pos": {
- "x": 940,
- "y": 112
+ "x": 1020,
+ "y": 189
},
- "width": 280,
- "height": 318,
+ "width": 160,
+ "height": 244,
"opacity": 1,
"strokeDash": 0,
"strokeWidth": 2,
@@ -868,8 +868,8 @@
"id": "gap 0.a",
"type": "rectangle",
"pos": {
- "x": 1000,
- "y": 172
+ "x": 1020,
+ "y": 235
},
"width": 54,
"height": 66,
@@ -909,8 +909,8 @@
"id": "gap 0.b",
"type": "rectangle",
"pos": {
- "x": 1054,
- "y": 172
+ "x": 1074,
+ "y": 235
},
"width": 53,
"height": 66,
@@ -950,8 +950,8 @@
"id": "gap 0.c",
"type": "rectangle",
"pos": {
- "x": 1107,
- "y": 172
+ "x": 1127,
+ "y": 235
},
"width": 53,
"height": 66,
@@ -991,8 +991,8 @@
"id": "gap 0.d",
"type": "rectangle",
"pos": {
- "x": 1000,
- "y": 238
+ "x": 1020,
+ "y": 301
},
"width": 54,
"height": 66,
@@ -1032,8 +1032,8 @@
"id": "gap 0.e",
"type": "rectangle",
"pos": {
- "x": 1054,
- "y": 238
+ "x": 1074,
+ "y": 301
},
"width": 53,
"height": 66,
@@ -1073,8 +1073,8 @@
"id": "gap 0.f",
"type": "rectangle",
"pos": {
- "x": 1107,
- "y": 238
+ "x": 1127,
+ "y": 301
},
"width": 53,
"height": 66,
@@ -1114,8 +1114,8 @@
"id": "gap 0.g",
"type": "rectangle",
"pos": {
- "x": 1000,
- "y": 304
+ "x": 1020,
+ "y": 367
},
"width": 54,
"height": 66,
@@ -1155,8 +1155,8 @@
"id": "gap 0.h",
"type": "rectangle",
"pos": {
- "x": 1054,
- "y": 304
+ "x": 1074,
+ "y": 367
},
"width": 53,
"height": 66,
@@ -1196,8 +1196,8 @@
"id": "gap 0.i",
"type": "rectangle",
"pos": {
- "x": 1107,
- "y": 304
+ "x": 1127,
+ "y": 367
},
"width": 53,
"height": 66,
@@ -1237,11 +1237,11 @@
"id": "gap 10 vertical-gap 100",
"type": "rectangle",
"pos": {
- "x": 1240,
+ "x": 1200,
"y": 12
},
- "width": 300,
- "height": 518,
+ "width": 278,
+ "height": 598,
"opacity": 1,
"strokeDash": 0,
"strokeWidth": 2,
@@ -1278,8 +1278,8 @@
"id": "gap 10 vertical-gap 100.a",
"type": "rectangle",
"pos": {
- "x": 1300,
- "y": 72
+ "x": 1249,
+ "y": 112
},
"width": 54,
"height": 66,
@@ -1319,8 +1319,8 @@
"id": "gap 10 vertical-gap 100.b",
"type": "rectangle",
"pos": {
- "x": 1364,
- "y": 72
+ "x": 1313,
+ "y": 112
},
"width": 53,
"height": 66,
@@ -1360,8 +1360,8 @@
"id": "gap 10 vertical-gap 100.c",
"type": "rectangle",
"pos": {
- "x": 1427,
- "y": 72
+ "x": 1376,
+ "y": 112
},
"width": 53,
"height": 66,
@@ -1401,8 +1401,8 @@
"id": "gap 10 vertical-gap 100.d",
"type": "rectangle",
"pos": {
- "x": 1300,
- "y": 238
+ "x": 1249,
+ "y": 278
},
"width": 54,
"height": 66,
@@ -1442,8 +1442,8 @@
"id": "gap 10 vertical-gap 100.e",
"type": "rectangle",
"pos": {
- "x": 1364,
- "y": 238
+ "x": 1313,
+ "y": 278
},
"width": 53,
"height": 66,
@@ -1483,8 +1483,8 @@
"id": "gap 10 vertical-gap 100.f",
"type": "rectangle",
"pos": {
- "x": 1427,
- "y": 238
+ "x": 1376,
+ "y": 278
},
"width": 53,
"height": 66,
@@ -1524,8 +1524,8 @@
"id": "gap 10 vertical-gap 100.g",
"type": "rectangle",
"pos": {
- "x": 1300,
- "y": 404
+ "x": 1249,
+ "y": 444
},
"width": 54,
"height": 66,
@@ -1565,8 +1565,8 @@
"id": "gap 10 vertical-gap 100.h",
"type": "rectangle",
"pos": {
- "x": 1364,
- "y": 404
+ "x": 1313,
+ "y": 444
},
"width": 53,
"height": 66,
@@ -1606,8 +1606,8 @@
"id": "gap 10 vertical-gap 100.i",
"type": "rectangle",
"pos": {
- "x": 1427,
- "y": 404
+ "x": 1376,
+ "y": 444
},
"width": 53,
"height": 66,
diff --git a/e2etests/testdata/stable/grid_gap/elk/sketch.exp.svg b/e2etests/testdata/stable/grid_gap/elk/sketch.exp.svg
index 6d1b14c28..bd207982b 100644
--- a/e2etests/testdata/stable/grid_gap/elk/sketch.exp.svg
+++ b/e2etests/testdata/stable/grid_gap/elk/sketch.exp.svg
@@ -1,17 +1,17 @@
-vertical-gap 30 horizontal-gap 100 vertical-gap 100 horizontal-gap 30 gap 0 gap 10 vertical-gap 100 a b c d e f g h i a b c d e f g h i a b c d e f g h i a b c d e f g h i
-
+ .d2-2169342647 .fill-N1{fill:#0A0F25;}
+ .d2-2169342647 .fill-N2{fill:#676C7E;}
+ .d2-2169342647 .fill-N3{fill:#9499AB;}
+ .d2-2169342647 .fill-N4{fill:#CFD2DD;}
+ .d2-2169342647 .fill-N5{fill:#DEE1EB;}
+ .d2-2169342647 .fill-N6{fill:#EEF1F8;}
+ .d2-2169342647 .fill-N7{fill:#FFFFFF;}
+ .d2-2169342647 .fill-B1{fill:#0D32B2;}
+ .d2-2169342647 .fill-B2{fill:#0D32B2;}
+ .d2-2169342647 .fill-B3{fill:#E3E9FD;}
+ .d2-2169342647 .fill-B4{fill:#E3E9FD;}
+ .d2-2169342647 .fill-B5{fill:#EDF0FD;}
+ .d2-2169342647 .fill-B6{fill:#F7F8FE;}
+ .d2-2169342647 .fill-AA2{fill:#4A6FF3;}
+ .d2-2169342647 .fill-AA4{fill:#EDF0FD;}
+ .d2-2169342647 .fill-AA5{fill:#F7F8FE;}
+ .d2-2169342647 .fill-AB4{fill:#EDF0FD;}
+ .d2-2169342647 .fill-AB5{fill:#F7F8FE;}
+ .d2-2169342647 .stroke-N1{stroke:#0A0F25;}
+ .d2-2169342647 .stroke-N2{stroke:#676C7E;}
+ .d2-2169342647 .stroke-N3{stroke:#9499AB;}
+ .d2-2169342647 .stroke-N4{stroke:#CFD2DD;}
+ .d2-2169342647 .stroke-N5{stroke:#DEE1EB;}
+ .d2-2169342647 .stroke-N6{stroke:#EEF1F8;}
+ .d2-2169342647 .stroke-N7{stroke:#FFFFFF;}
+ .d2-2169342647 .stroke-B1{stroke:#0D32B2;}
+ .d2-2169342647 .stroke-B2{stroke:#0D32B2;}
+ .d2-2169342647 .stroke-B3{stroke:#E3E9FD;}
+ .d2-2169342647 .stroke-B4{stroke:#E3E9FD;}
+ .d2-2169342647 .stroke-B5{stroke:#EDF0FD;}
+ .d2-2169342647 .stroke-B6{stroke:#F7F8FE;}
+ .d2-2169342647 .stroke-AA2{stroke:#4A6FF3;}
+ .d2-2169342647 .stroke-AA4{stroke:#EDF0FD;}
+ .d2-2169342647 .stroke-AA5{stroke:#F7F8FE;}
+ .d2-2169342647 .stroke-AB4{stroke:#EDF0FD;}
+ .d2-2169342647 .stroke-AB5{stroke:#F7F8FE;}
+ .d2-2169342647 .background-color-N1{background-color:#0A0F25;}
+ .d2-2169342647 .background-color-N2{background-color:#676C7E;}
+ .d2-2169342647 .background-color-N3{background-color:#9499AB;}
+ .d2-2169342647 .background-color-N4{background-color:#CFD2DD;}
+ .d2-2169342647 .background-color-N5{background-color:#DEE1EB;}
+ .d2-2169342647 .background-color-N6{background-color:#EEF1F8;}
+ .d2-2169342647 .background-color-N7{background-color:#FFFFFF;}
+ .d2-2169342647 .background-color-B1{background-color:#0D32B2;}
+ .d2-2169342647 .background-color-B2{background-color:#0D32B2;}
+ .d2-2169342647 .background-color-B3{background-color:#E3E9FD;}
+ .d2-2169342647 .background-color-B4{background-color:#E3E9FD;}
+ .d2-2169342647 .background-color-B5{background-color:#EDF0FD;}
+ .d2-2169342647 .background-color-B6{background-color:#F7F8FE;}
+ .d2-2169342647 .background-color-AA2{background-color:#4A6FF3;}
+ .d2-2169342647 .background-color-AA4{background-color:#EDF0FD;}
+ .d2-2169342647 .background-color-AA5{background-color:#F7F8FE;}
+ .d2-2169342647 .background-color-AB4{background-color:#EDF0FD;}
+ .d2-2169342647 .background-color-AB5{background-color:#F7F8FE;}
+ .d2-2169342647 .color-N1{color:#0A0F25;}
+ .d2-2169342647 .color-N2{color:#676C7E;}
+ .d2-2169342647 .color-N3{color:#9499AB;}
+ .d2-2169342647 .color-N4{color:#CFD2DD;}
+ .d2-2169342647 .color-N5{color:#DEE1EB;}
+ .d2-2169342647 .color-N6{color:#EEF1F8;}
+ .d2-2169342647 .color-N7{color:#FFFFFF;}
+ .d2-2169342647 .color-B1{color:#0D32B2;}
+ .d2-2169342647 .color-B2{color:#0D32B2;}
+ .d2-2169342647 .color-B3{color:#E3E9FD;}
+ .d2-2169342647 .color-B4{color:#E3E9FD;}
+ .d2-2169342647 .color-B5{color:#EDF0FD;}
+ .d2-2169342647 .color-B6{color:#F7F8FE;}
+ .d2-2169342647 .color-AA2{color:#4A6FF3;}
+ .d2-2169342647 .color-AA4{color:#EDF0FD;}
+ .d2-2169342647 .color-AA5{color:#F7F8FE;}
+ .d2-2169342647 .color-AB4{color:#EDF0FD;}
+ .d2-2169342647 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>vertical-gap 30 horizontal-gap 100 vertical-gap 100 horizontal-gap 30 gap 0 gap 10 vertical-gap 100 a b c d e f g h i a b c d e f g h i a b c d e f g h i a b c d e f g h i
+
\ No newline at end of file
diff --git a/e2etests/testdata/stable/grid_icon/dagre/board.exp.json b/e2etests/testdata/stable/grid_icon/dagre/board.exp.json
new file mode 100644
index 000000000..4ad3f73ef
--- /dev/null
+++ b/e2etests/testdata/stable/grid_icon/dagre/board.exp.json
@@ -0,0 +1,1271 @@
+{
+ "name": "",
+ "isFolderOnly": false,
+ "fontFamily": "SourceSansPro",
+ "shapes": [
+ {
+ "id": "grid w/ container + icon",
+ "type": "rectangle",
+ "classes": [
+ "2x2"
+ ],
+ "pos": {
+ "x": 0,
+ "y": 18
+ },
+ "width": 384,
+ "height": 421,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B4",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "grid w/ container + icon",
+ "fontSize": 28,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 273,
+ "labelHeight": 36,
+ "labelPosition": "INSIDE_TOP_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "grid w/ container + icon.a",
+ "type": "rectangle",
+ "pos": {
+ "x": 60,
+ "y": 143
+ },
+ "width": 53,
+ "height": 130,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "a",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "grid w/ container + icon.b",
+ "type": "rectangle",
+ "pos": {
+ "x": 153,
+ "y": 143
+ },
+ "width": 171,
+ "height": 130,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": {
+ "Scheme": "https",
+ "Opaque": "",
+ "User": null,
+ "Host": "icons.terrastruct.com",
+ "Path": "/dev/github.svg",
+ "RawPath": "/dev%2Fgithub.svg",
+ "OmitHost": false,
+ "ForceQuery": false,
+ "RawQuery": "",
+ "Fragment": "",
+ "RawFragment": ""
+ },
+ "iconPosition": "OUTSIDE_TOP_LEFT",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "b",
+ "fontSize": 24,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 12,
+ "labelHeight": 31,
+ "labelPosition": "OUTSIDE_TOP_RIGHT",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "grid w/ container + icon.b.b child",
+ "type": "rectangle",
+ "pos": {
+ "x": 193,
+ "y": 175
+ },
+ "width": 91,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B6",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "b child",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 46,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 3
+ },
+ {
+ "id": "grid w/ container + icon.c",
+ "type": "rectangle",
+ "pos": {
+ "x": 60,
+ "y": 313
+ },
+ "width": 53,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "c",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "grid w/ container + icon.d",
+ "type": "rectangle",
+ "pos": {
+ "x": 153,
+ "y": 313
+ },
+ "width": 171,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "d",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 9,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "grid + icon",
+ "type": "rectangle",
+ "classes": [
+ "2x2"
+ ],
+ "pos": {
+ "x": 444,
+ "y": 55
+ },
+ "width": 278,
+ "height": 347,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B4",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": {
+ "Scheme": "https",
+ "Opaque": "",
+ "User": null,
+ "Host": "icons.terrastruct.com",
+ "Path": "/dev/github.svg",
+ "RawPath": "/dev%2Fgithub.svg",
+ "OmitHost": false,
+ "ForceQuery": false,
+ "RawQuery": "",
+ "Fragment": "",
+ "RawFragment": ""
+ },
+ "iconPosition": "INSIDE_TOP_LEFT",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "grid + icon",
+ "fontSize": 28,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 120,
+ "labelHeight": 36,
+ "labelPosition": "INSIDE_TOP_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "grid + icon.a",
+ "type": "rectangle",
+ "pos": {
+ "x": 509,
+ "y": 129
+ },
+ "width": 53,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "a",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "grid + icon.b",
+ "type": "rectangle",
+ "pos": {
+ "x": 602,
+ "y": 129
+ },
+ "width": 54,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "b",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "grid + icon.c",
+ "type": "rectangle",
+ "pos": {
+ "x": 509,
+ "y": 235
+ },
+ "width": 53,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "c",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "grid + icon.d",
+ "type": "rectangle",
+ "pos": {
+ "x": 602,
+ "y": 235
+ },
+ "width": 54,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "d",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 9,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "grid + icon w/ container",
+ "type": "rectangle",
+ "classes": [
+ "2x2"
+ ],
+ "pos": {
+ "x": 782,
+ "y": 0
+ },
+ "width": 433,
+ "height": 457,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B4",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": {
+ "Scheme": "https",
+ "Opaque": "",
+ "User": null,
+ "Host": "icons.terrastruct.com",
+ "Path": "/dev/github.svg",
+ "RawPath": "/dev%2Fgithub.svg",
+ "OmitHost": false,
+ "ForceQuery": false,
+ "RawQuery": "",
+ "Fragment": "",
+ "RawFragment": ""
+ },
+ "iconPosition": "INSIDE_TOP_LEFT",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "grid + icon w/ container",
+ "fontSize": 28,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 275,
+ "labelHeight": 36,
+ "labelPosition": "INSIDE_TOP_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "grid + icon w/ container.a",
+ "type": "rectangle",
+ "pos": {
+ "x": 866,
+ "y": 120
+ },
+ "width": 53,
+ "height": 130,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "a",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "grid + icon w/ container.b",
+ "type": "rectangle",
+ "pos": {
+ "x": 959,
+ "y": 120
+ },
+ "width": 171,
+ "height": 130,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "b",
+ "fontSize": 24,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 12,
+ "labelHeight": 31,
+ "labelPosition": "OUTSIDE_TOP_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "grid + icon w/ container.b.b child",
+ "type": "rectangle",
+ "pos": {
+ "x": 999,
+ "y": 152
+ },
+ "width": 91,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B6",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "b child",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 46,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 3
+ },
+ {
+ "id": "grid + icon w/ container.c",
+ "type": "rectangle",
+ "pos": {
+ "x": 866,
+ "y": 290
+ },
+ "width": 53,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "c",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "grid + icon w/ container.d",
+ "type": "rectangle",
+ "pos": {
+ "x": 959,
+ "y": 290
+ },
+ "width": 171,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "d",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 9,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "no label grid w/ container + icon",
+ "type": "rectangle",
+ "classes": [
+ "2x2"
+ ],
+ "pos": {
+ "x": 1275,
+ "y": 41
+ },
+ "width": 384,
+ "height": 375,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B4",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 28,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_TOP_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "no label grid w/ container + icon.a",
+ "type": "rectangle",
+ "pos": {
+ "x": 1335,
+ "y": 120
+ },
+ "width": 53,
+ "height": 130,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "a",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "no label grid w/ container + icon.b",
+ "type": "rectangle",
+ "pos": {
+ "x": 1428,
+ "y": 120
+ },
+ "width": 171,
+ "height": 130,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": {
+ "Scheme": "https",
+ "Opaque": "",
+ "User": null,
+ "Host": "icons.terrastruct.com",
+ "Path": "/dev/github.svg",
+ "RawPath": "/dev%2Fgithub.svg",
+ "OmitHost": false,
+ "ForceQuery": false,
+ "RawQuery": "",
+ "Fragment": "",
+ "RawFragment": ""
+ },
+ "iconPosition": "OUTSIDE_TOP_LEFT",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "b",
+ "fontSize": 24,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 12,
+ "labelHeight": 31,
+ "labelPosition": "OUTSIDE_TOP_RIGHT",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "no label grid w/ container + icon.b.b child",
+ "type": "rectangle",
+ "pos": {
+ "x": 1468,
+ "y": 152
+ },
+ "width": 91,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B6",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "b child",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 46,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 3
+ },
+ {
+ "id": "no label grid w/ container + icon.c",
+ "type": "rectangle",
+ "pos": {
+ "x": 1335,
+ "y": 290
+ },
+ "width": 53,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "c",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "no label grid w/ container + icon.d",
+ "type": "rectangle",
+ "pos": {
+ "x": 1428,
+ "y": 290
+ },
+ "width": 171,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "d",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 9,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "no label grid + icon",
+ "type": "rectangle",
+ "classes": [
+ "2x2"
+ ],
+ "pos": {
+ "x": 1719,
+ "y": 76
+ },
+ "width": 267,
+ "height": 306,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B4",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": {
+ "Scheme": "https",
+ "Opaque": "",
+ "User": null,
+ "Host": "icons.terrastruct.com",
+ "Path": "/dev/github.svg",
+ "RawPath": "/dev%2Fgithub.svg",
+ "OmitHost": false,
+ "ForceQuery": false,
+ "RawQuery": "",
+ "Fragment": "",
+ "RawFragment": ""
+ },
+ "iconPosition": "INSIDE_TOP_LEFT",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 28,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_TOP_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "no label grid + icon.a",
+ "type": "rectangle",
+ "pos": {
+ "x": 1779,
+ "y": 150
+ },
+ "width": 53,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "a",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "no label grid + icon.b",
+ "type": "rectangle",
+ "pos": {
+ "x": 1872,
+ "y": 150
+ },
+ "width": 54,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "b",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "no label grid + icon.c",
+ "type": "rectangle",
+ "pos": {
+ "x": 1779,
+ "y": 256
+ },
+ "width": 53,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "c",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "no label grid + icon.d",
+ "type": "rectangle",
+ "pos": {
+ "x": 1872,
+ "y": 256
+ },
+ "width": 54,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "d",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 9,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ }
+ ],
+ "connections": [],
+ "root": {
+ "id": "",
+ "type": "",
+ "pos": {
+ "x": 0,
+ "y": 0
+ },
+ "width": 0,
+ "height": 0,
+ "opacity": 0,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "N7",
+ "stroke": "",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 0,
+ "fontFamily": "",
+ "language": "",
+ "color": "",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "zIndex": 0,
+ "level": 0
+ }
+}
diff --git a/e2etests/testdata/stable/grid_icon/dagre/sketch.exp.svg b/e2etests/testdata/stable/grid_icon/dagre/sketch.exp.svg
new file mode 100644
index 000000000..bb9f8f402
--- /dev/null
+++ b/e2etests/testdata/stable/grid_icon/dagre/sketch.exp.svg
@@ -0,0 +1,102 @@
+grid w/ container + icon grid + icon grid + icon w/ container a b c d a b c d a b c d a b c d a b c d b child b child b child
+
+
+
\ No newline at end of file
diff --git a/e2etests/testdata/stable/grid_icon/elk/board.exp.json b/e2etests/testdata/stable/grid_icon/elk/board.exp.json
new file mode 100644
index 000000000..be644853a
--- /dev/null
+++ b/e2etests/testdata/stable/grid_icon/elk/board.exp.json
@@ -0,0 +1,1271 @@
+{
+ "name": "",
+ "isFolderOnly": false,
+ "fontFamily": "SourceSansPro",
+ "shapes": [
+ {
+ "id": "grid w/ container + icon",
+ "type": "rectangle",
+ "classes": [
+ "2x2"
+ ],
+ "pos": {
+ "x": 12,
+ "y": 27
+ },
+ "width": 404,
+ "height": 416,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B4",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "grid w/ container + icon",
+ "fontSize": 28,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 273,
+ "labelHeight": 36,
+ "labelPosition": "INSIDE_TOP_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "grid w/ container + icon.a",
+ "type": "rectangle",
+ "pos": {
+ "x": 72,
+ "y": 87
+ },
+ "width": 53,
+ "height": 190,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "a",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "grid w/ container + icon.b",
+ "type": "rectangle",
+ "pos": {
+ "x": 165,
+ "y": 87
+ },
+ "width": 191,
+ "height": 190,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": {
+ "Scheme": "https",
+ "Opaque": "",
+ "User": null,
+ "Host": "icons.terrastruct.com",
+ "Path": "/dev/github.svg",
+ "RawPath": "/dev%2Fgithub.svg",
+ "OmitHost": false,
+ "ForceQuery": false,
+ "RawQuery": "",
+ "Fragment": "",
+ "RawFragment": ""
+ },
+ "iconPosition": "INSIDE_TOP_LEFT",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "b",
+ "fontSize": 24,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 12,
+ "labelHeight": 31,
+ "labelPosition": "INSIDE_TOP_RIGHT",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "grid w/ container + icon.b.b child",
+ "type": "rectangle",
+ "pos": {
+ "x": 215,
+ "y": 161
+ },
+ "width": 91,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B6",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "b child",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 46,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 3
+ },
+ {
+ "id": "grid w/ container + icon.c",
+ "type": "rectangle",
+ "pos": {
+ "x": 72,
+ "y": 317
+ },
+ "width": 53,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "c",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "grid w/ container + icon.d",
+ "type": "rectangle",
+ "pos": {
+ "x": 165,
+ "y": 317
+ },
+ "width": 191,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "d",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 9,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "grid + icon",
+ "type": "rectangle",
+ "classes": [
+ "2x2"
+ ],
+ "pos": {
+ "x": 436,
+ "y": 62
+ },
+ "width": 278,
+ "height": 347,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B4",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": {
+ "Scheme": "https",
+ "Opaque": "",
+ "User": null,
+ "Host": "icons.terrastruct.com",
+ "Path": "/dev/github.svg",
+ "RawPath": "/dev%2Fgithub.svg",
+ "OmitHost": false,
+ "ForceQuery": false,
+ "RawQuery": "",
+ "Fragment": "",
+ "RawFragment": ""
+ },
+ "iconPosition": "INSIDE_TOP_LEFT",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "grid + icon",
+ "fontSize": 28,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 120,
+ "labelHeight": 36,
+ "labelPosition": "INSIDE_TOP_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "grid + icon.a",
+ "type": "rectangle",
+ "pos": {
+ "x": 501,
+ "y": 136
+ },
+ "width": 53,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "a",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "grid + icon.b",
+ "type": "rectangle",
+ "pos": {
+ "x": 594,
+ "y": 136
+ },
+ "width": 54,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "b",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "grid + icon.c",
+ "type": "rectangle",
+ "pos": {
+ "x": 501,
+ "y": 242
+ },
+ "width": 53,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "c",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "grid + icon.d",
+ "type": "rectangle",
+ "pos": {
+ "x": 594,
+ "y": 242
+ },
+ "width": 54,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "d",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 9,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "grid + icon w/ container",
+ "type": "rectangle",
+ "classes": [
+ "2x2"
+ ],
+ "pos": {
+ "x": 734,
+ "y": 12
+ },
+ "width": 433,
+ "height": 447,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B4",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": {
+ "Scheme": "https",
+ "Opaque": "",
+ "User": null,
+ "Host": "icons.terrastruct.com",
+ "Path": "/dev/github.svg",
+ "RawPath": "/dev%2Fgithub.svg",
+ "OmitHost": false,
+ "ForceQuery": false,
+ "RawQuery": "",
+ "Fragment": "",
+ "RawFragment": ""
+ },
+ "iconPosition": "INSIDE_TOP_LEFT",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "grid + icon w/ container",
+ "fontSize": 28,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 275,
+ "labelHeight": 36,
+ "labelPosition": "INSIDE_TOP_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "grid + icon w/ container.a",
+ "type": "rectangle",
+ "pos": {
+ "x": 808,
+ "y": 86
+ },
+ "width": 53,
+ "height": 166,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "a",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "grid + icon w/ container.b",
+ "type": "rectangle",
+ "pos": {
+ "x": 901,
+ "y": 86
+ },
+ "width": 191,
+ "height": 166,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "b",
+ "fontSize": 24,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 12,
+ "labelHeight": 31,
+ "labelPosition": "INSIDE_TOP_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "grid + icon w/ container.b.b child",
+ "type": "rectangle",
+ "pos": {
+ "x": 951,
+ "y": 136
+ },
+ "width": 91,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B6",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "b child",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 46,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 3
+ },
+ {
+ "id": "grid + icon w/ container.c",
+ "type": "rectangle",
+ "pos": {
+ "x": 808,
+ "y": 292
+ },
+ "width": 53,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "c",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "grid + icon w/ container.d",
+ "type": "rectangle",
+ "pos": {
+ "x": 901,
+ "y": 292
+ },
+ "width": 191,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "d",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 9,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "no label grid w/ container + icon",
+ "type": "rectangle",
+ "classes": [
+ "2x2"
+ ],
+ "pos": {
+ "x": 1187,
+ "y": 27
+ },
+ "width": 404,
+ "height": 416,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B4",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 28,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_TOP_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "no label grid w/ container + icon.a",
+ "type": "rectangle",
+ "pos": {
+ "x": 1247,
+ "y": 87
+ },
+ "width": 53,
+ "height": 190,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "a",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "no label grid w/ container + icon.b",
+ "type": "rectangle",
+ "pos": {
+ "x": 1340,
+ "y": 87
+ },
+ "width": 191,
+ "height": 190,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": {
+ "Scheme": "https",
+ "Opaque": "",
+ "User": null,
+ "Host": "icons.terrastruct.com",
+ "Path": "/dev/github.svg",
+ "RawPath": "/dev%2Fgithub.svg",
+ "OmitHost": false,
+ "ForceQuery": false,
+ "RawQuery": "",
+ "Fragment": "",
+ "RawFragment": ""
+ },
+ "iconPosition": "INSIDE_TOP_LEFT",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "b",
+ "fontSize": 24,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 12,
+ "labelHeight": 31,
+ "labelPosition": "INSIDE_TOP_RIGHT",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "no label grid w/ container + icon.b.b child",
+ "type": "rectangle",
+ "pos": {
+ "x": 1390,
+ "y": 161
+ },
+ "width": 91,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B6",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "b child",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 46,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 3
+ },
+ {
+ "id": "no label grid w/ container + icon.c",
+ "type": "rectangle",
+ "pos": {
+ "x": 1247,
+ "y": 317
+ },
+ "width": 53,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "c",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "no label grid w/ container + icon.d",
+ "type": "rectangle",
+ "pos": {
+ "x": 1340,
+ "y": 317
+ },
+ "width": 191,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "d",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 9,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "no label grid + icon",
+ "type": "rectangle",
+ "classes": [
+ "2x2"
+ ],
+ "pos": {
+ "x": 1611,
+ "y": 82
+ },
+ "width": 267,
+ "height": 306,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B4",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": {
+ "Scheme": "https",
+ "Opaque": "",
+ "User": null,
+ "Host": "icons.terrastruct.com",
+ "Path": "/dev/github.svg",
+ "RawPath": "/dev%2Fgithub.svg",
+ "OmitHost": false,
+ "ForceQuery": false,
+ "RawQuery": "",
+ "Fragment": "",
+ "RawFragment": ""
+ },
+ "iconPosition": "INSIDE_TOP_LEFT",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 28,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_TOP_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "no label grid + icon.a",
+ "type": "rectangle",
+ "pos": {
+ "x": 1671,
+ "y": 156
+ },
+ "width": 53,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "a",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "no label grid + icon.b",
+ "type": "rectangle",
+ "pos": {
+ "x": 1764,
+ "y": 156
+ },
+ "width": 54,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "b",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "no label grid + icon.c",
+ "type": "rectangle",
+ "pos": {
+ "x": 1671,
+ "y": 262
+ },
+ "width": 53,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "c",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "no label grid + icon.d",
+ "type": "rectangle",
+ "pos": {
+ "x": 1764,
+ "y": 262
+ },
+ "width": 54,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "d",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 9,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ }
+ ],
+ "connections": [],
+ "root": {
+ "id": "",
+ "type": "",
+ "pos": {
+ "x": 0,
+ "y": 0
+ },
+ "width": 0,
+ "height": 0,
+ "opacity": 0,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "N7",
+ "stroke": "",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 0,
+ "fontFamily": "",
+ "language": "",
+ "color": "",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "zIndex": 0,
+ "level": 0
+ }
+}
diff --git a/e2etests/testdata/stable/grid_icon/elk/sketch.exp.svg b/e2etests/testdata/stable/grid_icon/elk/sketch.exp.svg
new file mode 100644
index 000000000..96c6fa725
--- /dev/null
+++ b/e2etests/testdata/stable/grid_icon/elk/sketch.exp.svg
@@ -0,0 +1,102 @@
+grid w/ container + icon grid + icon grid + icon w/ container a b c d a b c d a b c d a b c d a b c d b child b child b child
+
+
+
\ No newline at end of file
diff --git a/e2etests/testdata/stable/grid_large_checkered/dagre/board.exp.json b/e2etests/testdata/stable/grid_large_checkered/dagre/board.exp.json
new file mode 100644
index 000000000..3a12e1663
--- /dev/null
+++ b/e2etests/testdata/stable/grid_large_checkered/dagre/board.exp.json
@@ -0,0 +1,19452 @@
+{
+ "name": "",
+ "isFolderOnly": false,
+ "fontFamily": "SourceSansPro",
+ "shapes": [
+ {
+ "id": "1",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 0,
+ "y": 0
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "2",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 0,
+ "y": 100
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "3",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 0,
+ "y": 200
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "4",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 0,
+ "y": 300
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "5",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 0,
+ "y": 400
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "6",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 0,
+ "y": 500
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "7",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 0,
+ "y": 600
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "8",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 0,
+ "y": 700
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "9",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 0,
+ "y": 800
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "10",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 0,
+ "y": 900
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "11",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 0,
+ "y": 1000
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "12",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 0,
+ "y": 1100
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "13",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 0,
+ "y": 1200
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "14",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 0,
+ "y": 1300
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "15",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 0,
+ "y": 1400
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "16",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 0,
+ "y": 1500
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "17",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 0,
+ "y": 1600
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "18",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 0,
+ "y": 1700
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "19",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 0,
+ "y": 1800
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "20",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 0,
+ "y": 1900
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "21",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 0,
+ "y": 2000
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "22",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 100,
+ "y": 0
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "23",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 100,
+ "y": 100
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "24",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 100,
+ "y": 200
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "25",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 100,
+ "y": 300
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "26",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 100,
+ "y": 400
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "27",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 100,
+ "y": 500
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "28",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 100,
+ "y": 600
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "29",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 100,
+ "y": 700
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "30",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 100,
+ "y": 800
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "31",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 100,
+ "y": 900
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "32",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 100,
+ "y": 1000
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "33",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 100,
+ "y": 1100
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "34",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 100,
+ "y": 1200
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "35",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 100,
+ "y": 1300
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "36",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 100,
+ "y": 1400
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "37",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 100,
+ "y": 1500
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "38",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 100,
+ "y": 1600
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "39",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 100,
+ "y": 1700
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "40",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 100,
+ "y": 1800
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "41",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 100,
+ "y": 1900
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "42",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 100,
+ "y": 2000
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "43",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 200,
+ "y": 0
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "44",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 200,
+ "y": 100
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "45",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 200,
+ "y": 200
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "46",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 200,
+ "y": 300
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "47",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 200,
+ "y": 400
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "48",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 200,
+ "y": 500
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "49",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 200,
+ "y": 600
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "50",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 200,
+ "y": 700
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "51",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 200,
+ "y": 800
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "52",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 200,
+ "y": 900
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "53",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 200,
+ "y": 1000
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "54",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 200,
+ "y": 1100
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "55",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 200,
+ "y": 1200
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "56",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 200,
+ "y": 1300
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "57",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 200,
+ "y": 1400
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "58",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 200,
+ "y": 1500
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "59",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 200,
+ "y": 1600
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "60",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 200,
+ "y": 1700
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "61",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 200,
+ "y": 1800
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "62",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 200,
+ "y": 1900
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "63",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 200,
+ "y": 2000
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "64",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 300,
+ "y": 0
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "65",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 300,
+ "y": 100
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "66",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 300,
+ "y": 200
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "67",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 300,
+ "y": 300
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "68",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 300,
+ "y": 400
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "69",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 300,
+ "y": 500
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "70",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 300,
+ "y": 600
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "71",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 300,
+ "y": 700
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "72",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 300,
+ "y": 800
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "73",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 300,
+ "y": 900
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "74",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 300,
+ "y": 1000
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "75",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 300,
+ "y": 1100
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "76",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 300,
+ "y": 1200
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "77",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 300,
+ "y": 1300
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "78",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 300,
+ "y": 1400
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "79",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 300,
+ "y": 1500
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "80",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 300,
+ "y": 1600
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "81",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 300,
+ "y": 1700
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "82",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 300,
+ "y": 1800
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "83",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 300,
+ "y": 1900
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "84",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 300,
+ "y": 2000
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "85",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 400,
+ "y": 0
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "86",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 400,
+ "y": 100
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "87",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 400,
+ "y": 200
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "88",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 400,
+ "y": 300
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "89",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 400,
+ "y": 400
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "90",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 400,
+ "y": 500
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "91",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 400,
+ "y": 600
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "92",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 400,
+ "y": 700
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "93",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 400,
+ "y": 800
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "94",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 400,
+ "y": 900
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "95",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 400,
+ "y": 1000
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "96",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 400,
+ "y": 1100
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "97",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 400,
+ "y": 1200
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "98",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 400,
+ "y": 1300
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "99",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 400,
+ "y": 1400
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "100",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 400,
+ "y": 1500
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "101",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 400,
+ "y": 1600
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "102",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 400,
+ "y": 1700
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "103",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 400,
+ "y": 1800
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "104",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 400,
+ "y": 1900
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "105",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 400,
+ "y": 2000
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "106",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 500,
+ "y": 0
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "107",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 500,
+ "y": 100
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "108",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 500,
+ "y": 200
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "109",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 500,
+ "y": 300
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "110",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 500,
+ "y": 400
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "111",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 500,
+ "y": 500
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "112",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 500,
+ "y": 600
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "113",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 500,
+ "y": 700
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "114",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 500,
+ "y": 800
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "115",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 500,
+ "y": 900
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "116",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 500,
+ "y": 1000
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "117",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 500,
+ "y": 1100
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "118",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 500,
+ "y": 1200
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "119",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 500,
+ "y": 1300
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "120",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 500,
+ "y": 1400
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "121",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 500,
+ "y": 1500
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "122",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 500,
+ "y": 1600
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "123",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 500,
+ "y": 1700
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "124",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 500,
+ "y": 1800
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "125",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 500,
+ "y": 1900
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "126",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 500,
+ "y": 2000
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "127",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 600,
+ "y": 0
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "128",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 600,
+ "y": 100
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "129",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 600,
+ "y": 200
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "130",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 600,
+ "y": 300
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "131",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 600,
+ "y": 400
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "132",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 600,
+ "y": 500
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "133",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 600,
+ "y": 600
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "134",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 600,
+ "y": 700
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "135",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 600,
+ "y": 800
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "136",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 600,
+ "y": 900
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "137",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 600,
+ "y": 1000
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "138",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 600,
+ "y": 1100
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "139",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 600,
+ "y": 1200
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "140",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 600,
+ "y": 1300
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "141",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 600,
+ "y": 1400
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "142",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 600,
+ "y": 1500
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "143",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 600,
+ "y": 1600
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "144",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 600,
+ "y": 1700
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "145",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 600,
+ "y": 1800
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "146",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 600,
+ "y": 1900
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "147",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 600,
+ "y": 2000
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "148",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 700,
+ "y": 0
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "149",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 700,
+ "y": 100
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "150",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 700,
+ "y": 200
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "151",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 700,
+ "y": 300
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "152",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 700,
+ "y": 400
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "153",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 700,
+ "y": 500
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "154",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 700,
+ "y": 600
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "155",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 700,
+ "y": 700
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "156",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 700,
+ "y": 800
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "157",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 700,
+ "y": 900
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "158",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 700,
+ "y": 1000
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "159",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 700,
+ "y": 1100
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "160",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 700,
+ "y": 1200
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "161",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 700,
+ "y": 1300
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "162",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 700,
+ "y": 1400
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "163",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 700,
+ "y": 1500
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "164",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 700,
+ "y": 1600
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "165",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 700,
+ "y": 1700
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "166",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 700,
+ "y": 1800
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "167",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 700,
+ "y": 1900
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "168",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 700,
+ "y": 2000
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "169",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 800,
+ "y": 0
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "170",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 800,
+ "y": 100
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "171",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 800,
+ "y": 200
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "172",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 800,
+ "y": 300
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "173",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 800,
+ "y": 400
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "174",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 800,
+ "y": 500
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "175",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 800,
+ "y": 600
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "176",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 800,
+ "y": 700
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "177",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 800,
+ "y": 800
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "178",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 800,
+ "y": 900
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "179",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 800,
+ "y": 1000
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "180",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 800,
+ "y": 1100
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "181",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 800,
+ "y": 1200
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "182",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 800,
+ "y": 1300
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "183",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 800,
+ "y": 1400
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "184",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 800,
+ "y": 1500
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "185",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 800,
+ "y": 1600
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "186",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 800,
+ "y": 1700
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "187",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 800,
+ "y": 1800
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "188",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 800,
+ "y": 1900
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "189",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 800,
+ "y": 2000
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "190",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 900,
+ "y": 0
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "191",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 900,
+ "y": 100
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "192",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 900,
+ "y": 200
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "193",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 900,
+ "y": 300
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "194",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 900,
+ "y": 400
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "195",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 900,
+ "y": 500
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "196",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 900,
+ "y": 600
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "197",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 900,
+ "y": 700
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "198",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 900,
+ "y": 800
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "199",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 900,
+ "y": 900
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "200",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 900,
+ "y": 1000
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "201",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 900,
+ "y": 1100
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "202",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 900,
+ "y": 1200
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "203",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 900,
+ "y": 1300
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "204",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 900,
+ "y": 1400
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "205",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 900,
+ "y": 1500
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "206",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 900,
+ "y": 1600
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "207",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 900,
+ "y": 1700
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "208",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 900,
+ "y": 1800
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "209",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 900,
+ "y": 1900
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "210",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 900,
+ "y": 2000
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "211",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1000,
+ "y": 0
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "212",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1000,
+ "y": 100
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "213",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1000,
+ "y": 200
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "214",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1000,
+ "y": 300
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "215",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1000,
+ "y": 400
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "216",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1000,
+ "y": 500
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "217",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1000,
+ "y": 600
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "218",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1000,
+ "y": 700
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "219",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1000,
+ "y": 800
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "220",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1000,
+ "y": 900
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "221",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1000,
+ "y": 1000
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "222",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1000,
+ "y": 1100
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "223",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1000,
+ "y": 1200
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "224",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1000,
+ "y": 1300
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "225",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1000,
+ "y": 1400
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "226",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1000,
+ "y": 1500
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "227",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1000,
+ "y": 1600
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "228",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1000,
+ "y": 1700
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "229",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1000,
+ "y": 1800
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "230",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1000,
+ "y": 1900
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "231",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1000,
+ "y": 2000
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "232",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1100,
+ "y": 0
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "233",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1100,
+ "y": 100
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "234",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1100,
+ "y": 200
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "235",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1100,
+ "y": 300
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "236",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1100,
+ "y": 400
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "237",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1100,
+ "y": 500
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "238",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1100,
+ "y": 600
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "239",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1100,
+ "y": 700
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "240",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1100,
+ "y": 800
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "241",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1100,
+ "y": 900
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "242",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1100,
+ "y": 1000
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "243",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1100,
+ "y": 1100
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "244",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1100,
+ "y": 1200
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "245",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1100,
+ "y": 1300
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "246",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1100,
+ "y": 1400
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "247",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1100,
+ "y": 1500
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "248",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1100,
+ "y": 1600
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "249",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1100,
+ "y": 1700
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "250",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1100,
+ "y": 1800
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "251",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1100,
+ "y": 1900
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "252",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1100,
+ "y": 2000
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "253",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1200,
+ "y": 0
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "254",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1200,
+ "y": 100
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "255",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1200,
+ "y": 200
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "256",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1200,
+ "y": 300
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "257",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1200,
+ "y": 400
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "258",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1200,
+ "y": 500
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "259",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1200,
+ "y": 600
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "260",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1200,
+ "y": 700
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "261",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1200,
+ "y": 800
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "262",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1200,
+ "y": 900
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "263",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1200,
+ "y": 1000
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "264",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1200,
+ "y": 1100
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "265",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1200,
+ "y": 1200
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "266",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1200,
+ "y": 1300
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "267",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1200,
+ "y": 1400
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "268",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1200,
+ "y": 1500
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "269",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1200,
+ "y": 1600
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "270",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1200,
+ "y": 1700
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "271",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1200,
+ "y": 1800
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "272",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1200,
+ "y": 1900
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "273",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1200,
+ "y": 2000
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "274",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1300,
+ "y": 0
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "275",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1300,
+ "y": 100
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "276",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1300,
+ "y": 200
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "277",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1300,
+ "y": 300
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "278",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1300,
+ "y": 400
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "279",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1300,
+ "y": 500
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "280",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1300,
+ "y": 600
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "281",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1300,
+ "y": 700
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "282",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1300,
+ "y": 800
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "283",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1300,
+ "y": 900
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "284",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1300,
+ "y": 1000
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "285",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1300,
+ "y": 1100
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "286",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1300,
+ "y": 1200
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "287",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1300,
+ "y": 1300
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "288",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1300,
+ "y": 1400
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "289",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1300,
+ "y": 1500
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "290",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1300,
+ "y": 1600
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "291",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1300,
+ "y": 1700
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "292",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1300,
+ "y": 1800
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "293",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1300,
+ "y": 1900
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "294",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1300,
+ "y": 2000
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "295",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1400,
+ "y": 0
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "296",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1400,
+ "y": 100
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "297",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1400,
+ "y": 200
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "298",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1400,
+ "y": 300
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "299",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1400,
+ "y": 400
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "300",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1400,
+ "y": 500
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "301",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1400,
+ "y": 600
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "302",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1400,
+ "y": 700
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "303",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1400,
+ "y": 800
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "304",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1400,
+ "y": 900
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "305",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1400,
+ "y": 1000
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "306",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1400,
+ "y": 1100
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "307",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1400,
+ "y": 1200
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "308",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1400,
+ "y": 1300
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "309",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1400,
+ "y": 1400
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "310",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1400,
+ "y": 1500
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "311",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1400,
+ "y": 1600
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "312",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1400,
+ "y": 1700
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "313",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1400,
+ "y": 1800
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "314",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1400,
+ "y": 1900
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "315",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1400,
+ "y": 2000
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "316",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1500,
+ "y": 0
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "317",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1500,
+ "y": 100
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "318",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1500,
+ "y": 200
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "319",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1500,
+ "y": 300
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "320",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1500,
+ "y": 400
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "321",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1500,
+ "y": 500
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "322",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1500,
+ "y": 600
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "323",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1500,
+ "y": 700
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "324",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1500,
+ "y": 800
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "325",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1500,
+ "y": 900
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "326",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1500,
+ "y": 1000
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "327",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1500,
+ "y": 1100
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "328",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1500,
+ "y": 1200
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "329",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1500,
+ "y": 1300
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "330",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1500,
+ "y": 1400
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "331",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1500,
+ "y": 1500
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "332",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1500,
+ "y": 1600
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "333",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1500,
+ "y": 1700
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "334",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1500,
+ "y": 1800
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "335",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1500,
+ "y": 1900
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "336",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1500,
+ "y": 2000
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "337",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1600,
+ "y": 0
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "338",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1600,
+ "y": 100
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "339",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1600,
+ "y": 200
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "340",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1600,
+ "y": 300
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "341",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1600,
+ "y": 400
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "342",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1600,
+ "y": 500
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "343",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1600,
+ "y": 600
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "344",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1600,
+ "y": 700
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "345",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1600,
+ "y": 800
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "346",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1600,
+ "y": 900
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "347",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1600,
+ "y": 1000
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "348",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1600,
+ "y": 1100
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "349",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1600,
+ "y": 1200
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "350",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1600,
+ "y": 1300
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "351",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1600,
+ "y": 1400
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "352",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1600,
+ "y": 1500
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "353",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1600,
+ "y": 1600
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "354",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1600,
+ "y": 1700
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "355",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1600,
+ "y": 1800
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "356",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1600,
+ "y": 1900
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "357",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1600,
+ "y": 2000
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "358",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1700,
+ "y": 0
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "359",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1700,
+ "y": 100
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "360",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1700,
+ "y": 200
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "361",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1700,
+ "y": 300
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "362",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1700,
+ "y": 400
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "363",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1700,
+ "y": 500
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "364",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1700,
+ "y": 600
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "365",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1700,
+ "y": 700
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "366",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1700,
+ "y": 800
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "367",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1700,
+ "y": 900
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "368",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1700,
+ "y": 1000
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "369",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1700,
+ "y": 1100
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "370",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1700,
+ "y": 1200
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "371",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1700,
+ "y": 1300
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "372",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1700,
+ "y": 1400
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "373",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1700,
+ "y": 1500
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "374",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1700,
+ "y": 1600
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "375",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1700,
+ "y": 1700
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "376",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1700,
+ "y": 1800
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "377",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1700,
+ "y": 1900
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "378",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1700,
+ "y": 2000
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "379",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1800,
+ "y": 0
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "380",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1800,
+ "y": 100
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "381",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1800,
+ "y": 200
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "382",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1800,
+ "y": 300
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "383",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1800,
+ "y": 400
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "384",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1800,
+ "y": 500
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "385",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1800,
+ "y": 600
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "386",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1800,
+ "y": 700
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "387",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1800,
+ "y": 800
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "388",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1800,
+ "y": 900
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "389",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1800,
+ "y": 1000
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "390",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1800,
+ "y": 1100
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "391",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1800,
+ "y": 1200
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "392",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1800,
+ "y": 1300
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "393",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1800,
+ "y": 1400
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "394",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1800,
+ "y": 1500
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "395",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1800,
+ "y": 1600
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "396",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1800,
+ "y": 1700
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "397",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1800,
+ "y": 1800
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "398",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1800,
+ "y": 1900
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "399",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1800,
+ "y": 2000
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "400",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1900,
+ "y": 0
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "401",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1900,
+ "y": 100
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "402",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1900,
+ "y": 200
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "403",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1900,
+ "y": 300
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "404",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1900,
+ "y": 400
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "405",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1900,
+ "y": 500
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "406",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1900,
+ "y": 600
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "407",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1900,
+ "y": 700
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "408",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1900,
+ "y": 800
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "409",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1900,
+ "y": 900
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "410",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1900,
+ "y": 1000
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "411",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1900,
+ "y": 1100
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "412",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1900,
+ "y": 1200
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "413",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1900,
+ "y": 1300
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "414",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1900,
+ "y": 1400
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "415",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1900,
+ "y": 1500
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "416",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1900,
+ "y": 1600
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "417",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1900,
+ "y": 1700
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "418",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1900,
+ "y": 1800
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "419",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1900,
+ "y": 1900
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "420",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1900,
+ "y": 2000
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "421",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 2000,
+ "y": 0
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "422",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 2000,
+ "y": 100
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "423",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 2000,
+ "y": 200
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "424",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 2000,
+ "y": 300
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "425",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 2000,
+ "y": 400
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "426",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 2000,
+ "y": 500
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "427",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 2000,
+ "y": 600
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "428",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 2000,
+ "y": 700
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "429",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 2000,
+ "y": 800
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "430",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 2000,
+ "y": 900
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "431",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 2000,
+ "y": 1000
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "432",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 2000,
+ "y": 1100
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "433",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 2000,
+ "y": 1200
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "434",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 2000,
+ "y": 1300
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "435",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 2000,
+ "y": 1400
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "436",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 2000,
+ "y": 1500
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "437",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 2000,
+ "y": 1600
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "438",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 2000,
+ "y": 1700
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "439",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 2000,
+ "y": 1800
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "440",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 2000,
+ "y": 1900
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "441",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 2000,
+ "y": 2000
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ }
+ ],
+ "connections": [],
+ "root": {
+ "id": "",
+ "type": "",
+ "pos": {
+ "x": 0,
+ "y": 0
+ },
+ "width": 0,
+ "height": 0,
+ "opacity": 0,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "N7",
+ "stroke": "",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 0,
+ "fontFamily": "",
+ "language": "",
+ "color": "",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "zIndex": 0,
+ "level": 0
+ }
+}
diff --git a/e2etests/testdata/stable/grid_large_checkered/dagre/sketch.exp.svg b/e2etests/testdata/stable/grid_large_checkered/dagre/sketch.exp.svg
new file mode 100644
index 000000000..902008e3f
--- /dev/null
+++ b/e2etests/testdata/stable/grid_large_checkered/dagre/sketch.exp.svg
@@ -0,0 +1,88 @@
+
+
+
+
\ No newline at end of file
diff --git a/e2etests/testdata/stable/grid_large_checkered/elk/board.exp.json b/e2etests/testdata/stable/grid_large_checkered/elk/board.exp.json
new file mode 100644
index 000000000..3a12e1663
--- /dev/null
+++ b/e2etests/testdata/stable/grid_large_checkered/elk/board.exp.json
@@ -0,0 +1,19452 @@
+{
+ "name": "",
+ "isFolderOnly": false,
+ "fontFamily": "SourceSansPro",
+ "shapes": [
+ {
+ "id": "1",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 0,
+ "y": 0
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "2",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 0,
+ "y": 100
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "3",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 0,
+ "y": 200
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "4",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 0,
+ "y": 300
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "5",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 0,
+ "y": 400
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "6",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 0,
+ "y": 500
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "7",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 0,
+ "y": 600
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "8",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 0,
+ "y": 700
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "9",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 0,
+ "y": 800
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "10",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 0,
+ "y": 900
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "11",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 0,
+ "y": 1000
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "12",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 0,
+ "y": 1100
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "13",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 0,
+ "y": 1200
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "14",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 0,
+ "y": 1300
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "15",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 0,
+ "y": 1400
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "16",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 0,
+ "y": 1500
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "17",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 0,
+ "y": 1600
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "18",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 0,
+ "y": 1700
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "19",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 0,
+ "y": 1800
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "20",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 0,
+ "y": 1900
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "21",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 0,
+ "y": 2000
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "22",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 100,
+ "y": 0
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "23",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 100,
+ "y": 100
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "24",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 100,
+ "y": 200
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "25",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 100,
+ "y": 300
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "26",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 100,
+ "y": 400
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "27",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 100,
+ "y": 500
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "28",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 100,
+ "y": 600
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "29",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 100,
+ "y": 700
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "30",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 100,
+ "y": 800
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "31",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 100,
+ "y": 900
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "32",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 100,
+ "y": 1000
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "33",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 100,
+ "y": 1100
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "34",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 100,
+ "y": 1200
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "35",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 100,
+ "y": 1300
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "36",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 100,
+ "y": 1400
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "37",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 100,
+ "y": 1500
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "38",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 100,
+ "y": 1600
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "39",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 100,
+ "y": 1700
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "40",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 100,
+ "y": 1800
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "41",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 100,
+ "y": 1900
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "42",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 100,
+ "y": 2000
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "43",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 200,
+ "y": 0
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "44",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 200,
+ "y": 100
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "45",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 200,
+ "y": 200
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "46",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 200,
+ "y": 300
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "47",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 200,
+ "y": 400
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "48",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 200,
+ "y": 500
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "49",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 200,
+ "y": 600
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "50",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 200,
+ "y": 700
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "51",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 200,
+ "y": 800
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "52",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 200,
+ "y": 900
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "53",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 200,
+ "y": 1000
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "54",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 200,
+ "y": 1100
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "55",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 200,
+ "y": 1200
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "56",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 200,
+ "y": 1300
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "57",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 200,
+ "y": 1400
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "58",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 200,
+ "y": 1500
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "59",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 200,
+ "y": 1600
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "60",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 200,
+ "y": 1700
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "61",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 200,
+ "y": 1800
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "62",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 200,
+ "y": 1900
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "63",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 200,
+ "y": 2000
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "64",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 300,
+ "y": 0
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "65",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 300,
+ "y": 100
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "66",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 300,
+ "y": 200
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "67",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 300,
+ "y": 300
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "68",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 300,
+ "y": 400
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "69",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 300,
+ "y": 500
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "70",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 300,
+ "y": 600
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "71",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 300,
+ "y": 700
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "72",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 300,
+ "y": 800
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "73",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 300,
+ "y": 900
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "74",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 300,
+ "y": 1000
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "75",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 300,
+ "y": 1100
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "76",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 300,
+ "y": 1200
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "77",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 300,
+ "y": 1300
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "78",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 300,
+ "y": 1400
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "79",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 300,
+ "y": 1500
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "80",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 300,
+ "y": 1600
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "81",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 300,
+ "y": 1700
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "82",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 300,
+ "y": 1800
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "83",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 300,
+ "y": 1900
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "84",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 300,
+ "y": 2000
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "85",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 400,
+ "y": 0
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "86",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 400,
+ "y": 100
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "87",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 400,
+ "y": 200
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "88",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 400,
+ "y": 300
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "89",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 400,
+ "y": 400
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "90",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 400,
+ "y": 500
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "91",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 400,
+ "y": 600
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "92",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 400,
+ "y": 700
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "93",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 400,
+ "y": 800
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "94",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 400,
+ "y": 900
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "95",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 400,
+ "y": 1000
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "96",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 400,
+ "y": 1100
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "97",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 400,
+ "y": 1200
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "98",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 400,
+ "y": 1300
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "99",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 400,
+ "y": 1400
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "100",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 400,
+ "y": 1500
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "101",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 400,
+ "y": 1600
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "102",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 400,
+ "y": 1700
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "103",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 400,
+ "y": 1800
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "104",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 400,
+ "y": 1900
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "105",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 400,
+ "y": 2000
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "106",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 500,
+ "y": 0
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "107",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 500,
+ "y": 100
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "108",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 500,
+ "y": 200
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "109",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 500,
+ "y": 300
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "110",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 500,
+ "y": 400
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "111",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 500,
+ "y": 500
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "112",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 500,
+ "y": 600
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "113",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 500,
+ "y": 700
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "114",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 500,
+ "y": 800
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "115",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 500,
+ "y": 900
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "116",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 500,
+ "y": 1000
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "117",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 500,
+ "y": 1100
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "118",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 500,
+ "y": 1200
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "119",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 500,
+ "y": 1300
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "120",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 500,
+ "y": 1400
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "121",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 500,
+ "y": 1500
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "122",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 500,
+ "y": 1600
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "123",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 500,
+ "y": 1700
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "124",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 500,
+ "y": 1800
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "125",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 500,
+ "y": 1900
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "126",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 500,
+ "y": 2000
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "127",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 600,
+ "y": 0
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "128",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 600,
+ "y": 100
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "129",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 600,
+ "y": 200
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "130",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 600,
+ "y": 300
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "131",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 600,
+ "y": 400
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "132",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 600,
+ "y": 500
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "133",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 600,
+ "y": 600
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "134",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 600,
+ "y": 700
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "135",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 600,
+ "y": 800
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "136",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 600,
+ "y": 900
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "137",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 600,
+ "y": 1000
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "138",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 600,
+ "y": 1100
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "139",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 600,
+ "y": 1200
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "140",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 600,
+ "y": 1300
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "141",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 600,
+ "y": 1400
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "142",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 600,
+ "y": 1500
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "143",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 600,
+ "y": 1600
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "144",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 600,
+ "y": 1700
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "145",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 600,
+ "y": 1800
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "146",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 600,
+ "y": 1900
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "147",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 600,
+ "y": 2000
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "148",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 700,
+ "y": 0
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "149",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 700,
+ "y": 100
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "150",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 700,
+ "y": 200
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "151",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 700,
+ "y": 300
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "152",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 700,
+ "y": 400
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "153",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 700,
+ "y": 500
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "154",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 700,
+ "y": 600
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "155",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 700,
+ "y": 700
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "156",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 700,
+ "y": 800
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "157",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 700,
+ "y": 900
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "158",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 700,
+ "y": 1000
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "159",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 700,
+ "y": 1100
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "160",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 700,
+ "y": 1200
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "161",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 700,
+ "y": 1300
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "162",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 700,
+ "y": 1400
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "163",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 700,
+ "y": 1500
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "164",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 700,
+ "y": 1600
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "165",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 700,
+ "y": 1700
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "166",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 700,
+ "y": 1800
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "167",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 700,
+ "y": 1900
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "168",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 700,
+ "y": 2000
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "169",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 800,
+ "y": 0
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "170",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 800,
+ "y": 100
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "171",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 800,
+ "y": 200
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "172",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 800,
+ "y": 300
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "173",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 800,
+ "y": 400
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "174",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 800,
+ "y": 500
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "175",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 800,
+ "y": 600
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "176",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 800,
+ "y": 700
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "177",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 800,
+ "y": 800
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "178",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 800,
+ "y": 900
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "179",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 800,
+ "y": 1000
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "180",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 800,
+ "y": 1100
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "181",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 800,
+ "y": 1200
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "182",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 800,
+ "y": 1300
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "183",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 800,
+ "y": 1400
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "184",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 800,
+ "y": 1500
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "185",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 800,
+ "y": 1600
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "186",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 800,
+ "y": 1700
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "187",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 800,
+ "y": 1800
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "188",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 800,
+ "y": 1900
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "189",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 800,
+ "y": 2000
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "190",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 900,
+ "y": 0
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "191",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 900,
+ "y": 100
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "192",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 900,
+ "y": 200
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "193",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 900,
+ "y": 300
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "194",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 900,
+ "y": 400
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "195",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 900,
+ "y": 500
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "196",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 900,
+ "y": 600
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "197",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 900,
+ "y": 700
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "198",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 900,
+ "y": 800
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "199",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 900,
+ "y": 900
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "200",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 900,
+ "y": 1000
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "201",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 900,
+ "y": 1100
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "202",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 900,
+ "y": 1200
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "203",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 900,
+ "y": 1300
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "204",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 900,
+ "y": 1400
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "205",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 900,
+ "y": 1500
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "206",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 900,
+ "y": 1600
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "207",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 900,
+ "y": 1700
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "208",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 900,
+ "y": 1800
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "209",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 900,
+ "y": 1900
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "210",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 900,
+ "y": 2000
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "211",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1000,
+ "y": 0
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "212",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1000,
+ "y": 100
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "213",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1000,
+ "y": 200
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "214",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1000,
+ "y": 300
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "215",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1000,
+ "y": 400
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "216",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1000,
+ "y": 500
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "217",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1000,
+ "y": 600
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "218",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1000,
+ "y": 700
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "219",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1000,
+ "y": 800
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "220",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1000,
+ "y": 900
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "221",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1000,
+ "y": 1000
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "222",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1000,
+ "y": 1100
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "223",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1000,
+ "y": 1200
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "224",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1000,
+ "y": 1300
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "225",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1000,
+ "y": 1400
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "226",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1000,
+ "y": 1500
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "227",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1000,
+ "y": 1600
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "228",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1000,
+ "y": 1700
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "229",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1000,
+ "y": 1800
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "230",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1000,
+ "y": 1900
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "231",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1000,
+ "y": 2000
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "232",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1100,
+ "y": 0
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "233",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1100,
+ "y": 100
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "234",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1100,
+ "y": 200
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "235",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1100,
+ "y": 300
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "236",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1100,
+ "y": 400
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "237",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1100,
+ "y": 500
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "238",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1100,
+ "y": 600
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "239",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1100,
+ "y": 700
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "240",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1100,
+ "y": 800
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "241",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1100,
+ "y": 900
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "242",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1100,
+ "y": 1000
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "243",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1100,
+ "y": 1100
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "244",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1100,
+ "y": 1200
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "245",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1100,
+ "y": 1300
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "246",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1100,
+ "y": 1400
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "247",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1100,
+ "y": 1500
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "248",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1100,
+ "y": 1600
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "249",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1100,
+ "y": 1700
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "250",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1100,
+ "y": 1800
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "251",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1100,
+ "y": 1900
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "252",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1100,
+ "y": 2000
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "253",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1200,
+ "y": 0
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "254",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1200,
+ "y": 100
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "255",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1200,
+ "y": 200
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "256",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1200,
+ "y": 300
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "257",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1200,
+ "y": 400
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "258",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1200,
+ "y": 500
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "259",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1200,
+ "y": 600
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "260",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1200,
+ "y": 700
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "261",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1200,
+ "y": 800
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "262",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1200,
+ "y": 900
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "263",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1200,
+ "y": 1000
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "264",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1200,
+ "y": 1100
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "265",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1200,
+ "y": 1200
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "266",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1200,
+ "y": 1300
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "267",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1200,
+ "y": 1400
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "268",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1200,
+ "y": 1500
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "269",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1200,
+ "y": 1600
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "270",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1200,
+ "y": 1700
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "271",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1200,
+ "y": 1800
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "272",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1200,
+ "y": 1900
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "273",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1200,
+ "y": 2000
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "274",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1300,
+ "y": 0
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "275",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1300,
+ "y": 100
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "276",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1300,
+ "y": 200
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "277",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1300,
+ "y": 300
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "278",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1300,
+ "y": 400
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "279",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1300,
+ "y": 500
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "280",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1300,
+ "y": 600
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "281",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1300,
+ "y": 700
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "282",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1300,
+ "y": 800
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "283",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1300,
+ "y": 900
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "284",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1300,
+ "y": 1000
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "285",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1300,
+ "y": 1100
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "286",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1300,
+ "y": 1200
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "287",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1300,
+ "y": 1300
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "288",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1300,
+ "y": 1400
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "289",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1300,
+ "y": 1500
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "290",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1300,
+ "y": 1600
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "291",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1300,
+ "y": 1700
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "292",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1300,
+ "y": 1800
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "293",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1300,
+ "y": 1900
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "294",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1300,
+ "y": 2000
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "295",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1400,
+ "y": 0
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "296",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1400,
+ "y": 100
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "297",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1400,
+ "y": 200
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "298",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1400,
+ "y": 300
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "299",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1400,
+ "y": 400
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "300",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1400,
+ "y": 500
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "301",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1400,
+ "y": 600
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "302",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1400,
+ "y": 700
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "303",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1400,
+ "y": 800
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "304",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1400,
+ "y": 900
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "305",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1400,
+ "y": 1000
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "306",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1400,
+ "y": 1100
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "307",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1400,
+ "y": 1200
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "308",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1400,
+ "y": 1300
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "309",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1400,
+ "y": 1400
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "310",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1400,
+ "y": 1500
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "311",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1400,
+ "y": 1600
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "312",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1400,
+ "y": 1700
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "313",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1400,
+ "y": 1800
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "314",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1400,
+ "y": 1900
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "315",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1400,
+ "y": 2000
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "316",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1500,
+ "y": 0
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "317",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1500,
+ "y": 100
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "318",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1500,
+ "y": 200
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "319",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1500,
+ "y": 300
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "320",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1500,
+ "y": 400
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "321",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1500,
+ "y": 500
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "322",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1500,
+ "y": 600
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "323",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1500,
+ "y": 700
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "324",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1500,
+ "y": 800
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "325",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1500,
+ "y": 900
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "326",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1500,
+ "y": 1000
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "327",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1500,
+ "y": 1100
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "328",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1500,
+ "y": 1200
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "329",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1500,
+ "y": 1300
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "330",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1500,
+ "y": 1400
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "331",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1500,
+ "y": 1500
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "332",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1500,
+ "y": 1600
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "333",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1500,
+ "y": 1700
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "334",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1500,
+ "y": 1800
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "335",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1500,
+ "y": 1900
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "336",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1500,
+ "y": 2000
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "337",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1600,
+ "y": 0
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "338",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1600,
+ "y": 100
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "339",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1600,
+ "y": 200
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "340",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1600,
+ "y": 300
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "341",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1600,
+ "y": 400
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "342",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1600,
+ "y": 500
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "343",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1600,
+ "y": 600
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "344",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1600,
+ "y": 700
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "345",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1600,
+ "y": 800
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "346",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1600,
+ "y": 900
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "347",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1600,
+ "y": 1000
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "348",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1600,
+ "y": 1100
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "349",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1600,
+ "y": 1200
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "350",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1600,
+ "y": 1300
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "351",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1600,
+ "y": 1400
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "352",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1600,
+ "y": 1500
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "353",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1600,
+ "y": 1600
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "354",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1600,
+ "y": 1700
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "355",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1600,
+ "y": 1800
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "356",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1600,
+ "y": 1900
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "357",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1600,
+ "y": 2000
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "358",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1700,
+ "y": 0
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "359",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1700,
+ "y": 100
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "360",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1700,
+ "y": 200
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "361",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1700,
+ "y": 300
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "362",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1700,
+ "y": 400
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "363",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1700,
+ "y": 500
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "364",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1700,
+ "y": 600
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "365",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1700,
+ "y": 700
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "366",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1700,
+ "y": 800
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "367",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1700,
+ "y": 900
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "368",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1700,
+ "y": 1000
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "369",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1700,
+ "y": 1100
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "370",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1700,
+ "y": 1200
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "371",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1700,
+ "y": 1300
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "372",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1700,
+ "y": 1400
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "373",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1700,
+ "y": 1500
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "374",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1700,
+ "y": 1600
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "375",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1700,
+ "y": 1700
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "376",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1700,
+ "y": 1800
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "377",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1700,
+ "y": 1900
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "378",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1700,
+ "y": 2000
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "379",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1800,
+ "y": 0
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "380",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1800,
+ "y": 100
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "381",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1800,
+ "y": 200
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "382",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1800,
+ "y": 300
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "383",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1800,
+ "y": 400
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "384",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1800,
+ "y": 500
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "385",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1800,
+ "y": 600
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "386",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1800,
+ "y": 700
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "387",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1800,
+ "y": 800
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "388",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1800,
+ "y": 900
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "389",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1800,
+ "y": 1000
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "390",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1800,
+ "y": 1100
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "391",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1800,
+ "y": 1200
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "392",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1800,
+ "y": 1300
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "393",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1800,
+ "y": 1400
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "394",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1800,
+ "y": 1500
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "395",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1800,
+ "y": 1600
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "396",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1800,
+ "y": 1700
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "397",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1800,
+ "y": 1800
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "398",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1800,
+ "y": 1900
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "399",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1800,
+ "y": 2000
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "400",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1900,
+ "y": 0
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "401",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1900,
+ "y": 100
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "402",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1900,
+ "y": 200
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "403",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1900,
+ "y": 300
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "404",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1900,
+ "y": 400
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "405",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1900,
+ "y": 500
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "406",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1900,
+ "y": 600
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "407",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1900,
+ "y": 700
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "408",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1900,
+ "y": 800
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "409",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1900,
+ "y": 900
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "410",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1900,
+ "y": 1000
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "411",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1900,
+ "y": 1100
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "412",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1900,
+ "y": 1200
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "413",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1900,
+ "y": 1300
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "414",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1900,
+ "y": 1400
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "415",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1900,
+ "y": 1500
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "416",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1900,
+ "y": 1600
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "417",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1900,
+ "y": 1700
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "418",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1900,
+ "y": 1800
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "419",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 1900,
+ "y": 1900
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "420",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 1900,
+ "y": 2000
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "421",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 2000,
+ "y": 0
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "422",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 2000,
+ "y": 100
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "423",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 2000,
+ "y": 200
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "424",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 2000,
+ "y": 300
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "425",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 2000,
+ "y": 400
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "426",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 2000,
+ "y": 500
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "427",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 2000,
+ "y": 600
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "428",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 2000,
+ "y": 700
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "429",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 2000,
+ "y": 800
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "430",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 2000,
+ "y": 900
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "431",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 2000,
+ "y": 1000
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "432",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 2000,
+ "y": 1100
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "433",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 2000,
+ "y": 1200
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "434",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 2000,
+ "y": 1300
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "435",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 2000,
+ "y": 1400
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "436",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 2000,
+ "y": 1500
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "437",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 2000,
+ "y": 1600
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "438",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 2000,
+ "y": 1700
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "439",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 2000,
+ "y": 1800
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "440",
+ "type": "rectangle",
+ "classes": [
+ "WHITE"
+ ],
+ "pos": {
+ "x": 2000,
+ "y": 1900
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "white",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "441",
+ "type": "rectangle",
+ "classes": [
+ "BLACK"
+ ],
+ "pos": {
+ "x": 2000,
+ "y": 2000
+ },
+ "width": 100,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "black",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ }
+ ],
+ "connections": [],
+ "root": {
+ "id": "",
+ "type": "",
+ "pos": {
+ "x": 0,
+ "y": 0
+ },
+ "width": 0,
+ "height": 0,
+ "opacity": 0,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "N7",
+ "stroke": "",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 0,
+ "fontFamily": "",
+ "language": "",
+ "color": "",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "zIndex": 0,
+ "level": 0
+ }
+}
diff --git a/e2etests/testdata/stable/grid_large_checkered/elk/sketch.exp.svg b/e2etests/testdata/stable/grid_large_checkered/elk/sketch.exp.svg
new file mode 100644
index 000000000..902008e3f
--- /dev/null
+++ b/e2etests/testdata/stable/grid_large_checkered/elk/sketch.exp.svg
@@ -0,0 +1,88 @@
+
+
+
+
\ No newline at end of file
diff --git a/e2etests/testdata/stable/grid_nested/dagre/board.exp.json b/e2etests/testdata/stable/grid_nested/dagre/board.exp.json
new file mode 100644
index 000000000..539206801
--- /dev/null
+++ b/e2etests/testdata/stable/grid_nested/dagre/board.exp.json
@@ -0,0 +1,2028 @@
+{
+ "name": "",
+ "isFolderOnly": false,
+ "fontFamily": "SourceSansPro",
+ "shapes": [
+ {
+ "id": "grid w/ container",
+ "type": "rectangle",
+ "classes": [
+ "2x2"
+ ],
+ "pos": {
+ "x": 0,
+ "y": 150
+ },
+ "width": 384,
+ "height": 388,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B4",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "grid w/ container",
+ "fontSize": 28,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 200,
+ "labelHeight": 36,
+ "labelPosition": "INSIDE_TOP_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "grid w/ container.a",
+ "type": "rectangle",
+ "pos": {
+ "x": 60,
+ "y": 242
+ },
+ "width": 53,
+ "height": 130,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "a",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "grid w/ container.b",
+ "type": "rectangle",
+ "pos": {
+ "x": 153,
+ "y": 242
+ },
+ "width": 171,
+ "height": 130,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "b",
+ "fontSize": 24,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 12,
+ "labelHeight": 31,
+ "labelPosition": "OUTSIDE_TOP_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "grid w/ container.b.b child",
+ "type": "rectangle",
+ "pos": {
+ "x": 193,
+ "y": 274
+ },
+ "width": 91,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B6",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "b child",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 46,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 3
+ },
+ {
+ "id": "grid w/ container.c",
+ "type": "rectangle",
+ "pos": {
+ "x": 60,
+ "y": 412
+ },
+ "width": 53,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "c",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "grid w/ container.d",
+ "type": "rectangle",
+ "pos": {
+ "x": 153,
+ "y": 412
+ },
+ "width": 171,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "d",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 9,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "grid w/ nested containers",
+ "type": "rectangle",
+ "classes": [
+ "2x2"
+ ],
+ "pos": {
+ "x": 444,
+ "y": 0
+ },
+ "width": 692,
+ "height": 688,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B4",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "grid w/ nested containers",
+ "fontSize": 28,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 296,
+ "labelHeight": 36,
+ "labelPosition": "INSIDE_TOP_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "grid w/ nested containers.a",
+ "type": "rectangle",
+ "pos": {
+ "x": 504,
+ "y": 92
+ },
+ "width": 53,
+ "height": 430,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "a",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "grid w/ nested containers.b",
+ "type": "rectangle",
+ "pos": {
+ "x": 597,
+ "y": 92
+ },
+ "width": 479,
+ "height": 430,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "b",
+ "fontSize": 24,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 12,
+ "labelHeight": 31,
+ "labelPosition": "OUTSIDE_TOP_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "grid w/ nested containers.b.b 1",
+ "type": "rectangle",
+ "pos": {
+ "x": 617,
+ "y": 155
+ },
+ "width": 439,
+ "height": 335,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B6",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "b 1",
+ "fontSize": 20,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 24,
+ "labelHeight": 26,
+ "labelPosition": "OUTSIDE_TOP_CENTER",
+ "zIndex": 0,
+ "level": 3
+ },
+ {
+ "id": "grid w/ nested containers.b.b 1.b 2",
+ "type": "rectangle",
+ "pos": {
+ "x": 637,
+ "y": 215
+ },
+ "width": 186,
+ "height": 240,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "N7",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "b 2",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 20,
+ "labelHeight": 21,
+ "labelPosition": "OUTSIDE_TOP_CENTER",
+ "zIndex": 0,
+ "level": 4
+ },
+ {
+ "id": "grid w/ nested containers.b.b 1.b 2.b 3",
+ "type": "rectangle",
+ "pos": {
+ "x": 657,
+ "y": 278
+ },
+ "width": 146,
+ "height": 140,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "N7",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "b 3",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 20,
+ "labelHeight": 21,
+ "labelPosition": "OUTSIDE_TOP_CENTER",
+ "zIndex": 0,
+ "level": 5
+ },
+ {
+ "id": "grid w/ nested containers.b.b 1.b 2.b 3.b 4",
+ "type": "rectangle",
+ "pos": {
+ "x": 697,
+ "y": 315
+ },
+ "width": 66,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "N7",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "b 4",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 21,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 6
+ },
+ {
+ "id": "grid w/ nested containers.b.b 1.b 2a",
+ "type": "rectangle",
+ "pos": {
+ "x": 843,
+ "y": 215
+ },
+ "width": 193,
+ "height": 240,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "N7",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "b 2a",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 26,
+ "labelHeight": 21,
+ "labelPosition": "OUTSIDE_TOP_CENTER",
+ "zIndex": 0,
+ "level": 4
+ },
+ {
+ "id": "grid w/ nested containers.b.b 1.b 2a.b 3a",
+ "type": "rectangle",
+ "pos": {
+ "x": 863,
+ "y": 278
+ },
+ "width": 153,
+ "height": 140,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "N7",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "b 3a",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 26,
+ "labelHeight": 21,
+ "labelPosition": "OUTSIDE_TOP_CENTER",
+ "zIndex": 0,
+ "level": 5
+ },
+ {
+ "id": "grid w/ nested containers.b.b 1.b 2a.b 3a.b 3a",
+ "type": "rectangle",
+ "pos": {
+ "x": 903,
+ "y": 315
+ },
+ "width": 73,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "N7",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "b 3a",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 28,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 6
+ },
+ {
+ "id": "grid w/ nested containers.c",
+ "type": "rectangle",
+ "pos": {
+ "x": 504,
+ "y": 562
+ },
+ "width": 53,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "c",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "grid w/ nested containers.d",
+ "type": "rectangle",
+ "pos": {
+ "x": 597,
+ "y": 562
+ },
+ "width": 479,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "d",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 9,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "grid in grid",
+ "type": "rectangle",
+ "classes": [
+ "2x2"
+ ],
+ "pos": {
+ "x": 1196,
+ "y": 85
+ },
+ "width": 480,
+ "height": 518,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B4",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "grid in grid",
+ "fontSize": 28,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 124,
+ "labelHeight": 36,
+ "labelPosition": "INSIDE_TOP_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "grid in grid.a",
+ "type": "rectangle",
+ "pos": {
+ "x": 1256,
+ "y": 145
+ },
+ "width": 53,
+ "height": 292,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "a",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "grid in grid.b",
+ "type": "rectangle",
+ "classes": [
+ "2x2"
+ ],
+ "pos": {
+ "x": 1349,
+ "y": 145
+ },
+ "width": 267,
+ "height": 292,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "b",
+ "fontSize": 24,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 12,
+ "labelHeight": 31,
+ "labelPosition": "INSIDE_TOP_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "grid in grid.b.a",
+ "type": "rectangle",
+ "pos": {
+ "x": 1409,
+ "y": 205
+ },
+ "width": 53,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B6",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "a",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 3
+ },
+ {
+ "id": "grid in grid.b.b",
+ "type": "rectangle",
+ "pos": {
+ "x": 1502,
+ "y": 205
+ },
+ "width": 54,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B6",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "b",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 3
+ },
+ {
+ "id": "grid in grid.b.c",
+ "type": "rectangle",
+ "pos": {
+ "x": 1409,
+ "y": 311
+ },
+ "width": 53,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B6",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "c",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 3
+ },
+ {
+ "id": "grid in grid.b.d",
+ "type": "rectangle",
+ "pos": {
+ "x": 1502,
+ "y": 311
+ },
+ "width": 54,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B6",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "d",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 9,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 3
+ },
+ {
+ "id": "grid in grid.c",
+ "type": "rectangle",
+ "pos": {
+ "x": 1256,
+ "y": 477
+ },
+ "width": 53,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "c",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "grid in grid.d",
+ "type": "rectangle",
+ "pos": {
+ "x": 1349,
+ "y": 477
+ },
+ "width": 267,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "d",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 9,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "grid w/ grid w/ grid",
+ "type": "rectangle",
+ "pos": {
+ "x": 1736,
+ "y": 54
+ },
+ "width": 321,
+ "height": 581,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B4",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "grid w/ grid w/ grid",
+ "fontSize": 28,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 219,
+ "labelHeight": 36,
+ "labelPosition": "INSIDE_TOP_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "grid w/ grid w/ grid.a",
+ "type": "rectangle",
+ "pos": {
+ "x": 1736,
+ "y": 100
+ },
+ "width": 53,
+ "height": 469,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "a",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "grid w/ grid w/ grid.b",
+ "type": "rectangle",
+ "pos": {
+ "x": 1789,
+ "y": 100
+ },
+ "width": 268,
+ "height": 469,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "b",
+ "fontSize": 24,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 12,
+ "labelHeight": 31,
+ "labelPosition": "INSIDE_TOP_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "grid w/ grid w/ grid.b.a",
+ "type": "rectangle",
+ "pos": {
+ "x": 1789,
+ "y": 141
+ },
+ "width": 214,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B6",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "a",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 3
+ },
+ {
+ "id": "grid w/ grid w/ grid.b.b",
+ "type": "rectangle",
+ "pos": {
+ "x": 2003,
+ "y": 141
+ },
+ "width": 54,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B6",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "b",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 3
+ },
+ {
+ "id": "grid w/ grid w/ grid.b.c",
+ "type": "rectangle",
+ "pos": {
+ "x": 1789,
+ "y": 207
+ },
+ "width": 214,
+ "height": 362,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B6",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "c",
+ "fontSize": 20,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 9,
+ "labelHeight": 26,
+ "labelPosition": "INSIDE_TOP_CENTER",
+ "zIndex": 0,
+ "level": 3
+ },
+ {
+ "id": "grid w/ grid w/ grid.b.c.a",
+ "type": "rectangle",
+ "pos": {
+ "x": 1789,
+ "y": 243
+ },
+ "width": 53,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "N7",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "a",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 4
+ },
+ {
+ "id": "grid w/ grid w/ grid.b.c.b",
+ "type": "rectangle",
+ "pos": {
+ "x": 1842,
+ "y": 243
+ },
+ "width": 161,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "N7",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "b",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 4
+ },
+ {
+ "id": "grid w/ grid w/ grid.b.c.c",
+ "type": "rectangle",
+ "pos": {
+ "x": 1789,
+ "y": 309
+ },
+ "width": 53,
+ "height": 260,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "N7",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "c",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 4
+ },
+ {
+ "id": "grid w/ grid w/ grid.b.c.d",
+ "type": "rectangle",
+ "pos": {
+ "x": 1842,
+ "y": 309
+ },
+ "width": 161,
+ "height": 260,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "N7",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "d",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_TOP_CENTER",
+ "zIndex": 0,
+ "level": 4
+ },
+ {
+ "id": "grid w/ grid w/ grid.b.c.d.a",
+ "type": "rectangle",
+ "pos": {
+ "x": 1842,
+ "y": 340
+ },
+ "width": 107,
+ "height": 163,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "N7",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "a",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 7,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_TOP_CENTER",
+ "zIndex": 0,
+ "level": 5
+ },
+ {
+ "id": "grid w/ grid w/ grid.b.c.d.a.a",
+ "type": "rectangle",
+ "pos": {
+ "x": 1842,
+ "y": 371
+ },
+ "width": 53,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "N7",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "a",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 6
+ },
+ {
+ "id": "grid w/ grid w/ grid.b.c.d.a.b",
+ "type": "rectangle",
+ "pos": {
+ "x": 1895,
+ "y": 371
+ },
+ "width": 54,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "N7",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "b",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 6
+ },
+ {
+ "id": "grid w/ grid w/ grid.b.c.d.a.c",
+ "type": "rectangle",
+ "pos": {
+ "x": 1842,
+ "y": 437
+ },
+ "width": 53,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "N7",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "c",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 6
+ },
+ {
+ "id": "grid w/ grid w/ grid.b.c.d.a.d",
+ "type": "rectangle",
+ "pos": {
+ "x": 1895,
+ "y": 437
+ },
+ "width": 54,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "N7",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "d",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 9,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 6
+ },
+ {
+ "id": "grid w/ grid w/ grid.b.c.d.b",
+ "type": "rectangle",
+ "pos": {
+ "x": 1949,
+ "y": 340
+ },
+ "width": 54,
+ "height": 163,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "N7",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "b",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 5
+ },
+ {
+ "id": "grid w/ grid w/ grid.b.c.d.c",
+ "type": "rectangle",
+ "pos": {
+ "x": 1842,
+ "y": 503
+ },
+ "width": 107,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "N7",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "c",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 5
+ },
+ {
+ "id": "grid w/ grid w/ grid.b.c.d.d",
+ "type": "rectangle",
+ "pos": {
+ "x": 1949,
+ "y": 503
+ },
+ "width": 54,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "N7",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "d",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 9,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 5
+ },
+ {
+ "id": "grid w/ grid w/ grid.b.d",
+ "type": "rectangle",
+ "pos": {
+ "x": 2003,
+ "y": 207
+ },
+ "width": 54,
+ "height": 362,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B6",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "d",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 9,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 3
+ },
+ {
+ "id": "grid w/ grid w/ grid.c",
+ "type": "rectangle",
+ "pos": {
+ "x": 1736,
+ "y": 569
+ },
+ "width": 53,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "c",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "grid w/ grid w/ grid.d",
+ "type": "rectangle",
+ "pos": {
+ "x": 1789,
+ "y": 569
+ },
+ "width": 268,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "d",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 9,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ }
+ ],
+ "connections": [],
+ "root": {
+ "id": "",
+ "type": "",
+ "pos": {
+ "x": 0,
+ "y": 0
+ },
+ "width": 0,
+ "height": 0,
+ "opacity": 0,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "N7",
+ "stroke": "",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 0,
+ "fontFamily": "",
+ "language": "",
+ "color": "",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "zIndex": 0,
+ "level": 0
+ }
+}
diff --git a/e2etests/testdata/stable/grid_nested/dagre/sketch.exp.svg b/e2etests/testdata/stable/grid_nested/dagre/sketch.exp.svg
new file mode 100644
index 000000000..86d91d2f7
--- /dev/null
+++ b/e2etests/testdata/stable/grid_nested/dagre/sketch.exp.svg
@@ -0,0 +1,102 @@
+grid w/ container grid w/ nested containers grid in grid grid w/ grid w/ grid a b c d a b c d a b c d a b c d b child b 1 a b c d a b c d b 2 b 2a a b c d b 3 b 3a a b c d b 4 b 3a a b c d
+
+
+
\ No newline at end of file
diff --git a/e2etests/testdata/stable/grid_nested/elk/board.exp.json b/e2etests/testdata/stable/grid_nested/elk/board.exp.json
new file mode 100644
index 000000000..08a18ac92
--- /dev/null
+++ b/e2etests/testdata/stable/grid_nested/elk/board.exp.json
@@ -0,0 +1,2028 @@
+{
+ "name": "",
+ "isFolderOnly": false,
+ "fontFamily": "SourceSansPro",
+ "shapes": [
+ {
+ "id": "grid w/ container",
+ "type": "rectangle",
+ "classes": [
+ "2x2"
+ ],
+ "pos": {
+ "x": 12,
+ "y": 162
+ },
+ "width": 404,
+ "height": 392,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B4",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "grid w/ container",
+ "fontSize": 28,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 200,
+ "labelHeight": 36,
+ "labelPosition": "INSIDE_TOP_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "grid w/ container.a",
+ "type": "rectangle",
+ "pos": {
+ "x": 72,
+ "y": 222
+ },
+ "width": 53,
+ "height": 166,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "a",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "grid w/ container.b",
+ "type": "rectangle",
+ "pos": {
+ "x": 165,
+ "y": 222
+ },
+ "width": 191,
+ "height": 166,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "b",
+ "fontSize": 24,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 12,
+ "labelHeight": 31,
+ "labelPosition": "INSIDE_TOP_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "grid w/ container.b.b child",
+ "type": "rectangle",
+ "pos": {
+ "x": 215,
+ "y": 272
+ },
+ "width": 91,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B6",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "b child",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 46,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 3
+ },
+ {
+ "id": "grid w/ container.c",
+ "type": "rectangle",
+ "pos": {
+ "x": 72,
+ "y": 428
+ },
+ "width": 53,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "c",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "grid w/ container.d",
+ "type": "rectangle",
+ "pos": {
+ "x": 165,
+ "y": 428
+ },
+ "width": 191,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "d",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 9,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "grid w/ nested containers",
+ "type": "rectangle",
+ "classes": [
+ "2x2"
+ ],
+ "pos": {
+ "x": 436,
+ "y": 12
+ },
+ "width": 972,
+ "height": 692,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B4",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "grid w/ nested containers",
+ "fontSize": 28,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 296,
+ "labelHeight": 36,
+ "labelPosition": "INSIDE_TOP_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "grid w/ nested containers.a",
+ "type": "rectangle",
+ "pos": {
+ "x": 496,
+ "y": 72
+ },
+ "width": 53,
+ "height": 466,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "a",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "grid w/ nested containers.b",
+ "type": "rectangle",
+ "pos": {
+ "x": 589,
+ "y": 72
+ },
+ "width": 759,
+ "height": 466,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "b",
+ "fontSize": 24,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 12,
+ "labelHeight": 31,
+ "labelPosition": "INSIDE_TOP_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "grid w/ nested containers.b.b 1",
+ "type": "rectangle",
+ "pos": {
+ "x": 639,
+ "y": 122
+ },
+ "width": 659,
+ "height": 366,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B6",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "b 1",
+ "fontSize": 20,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 24,
+ "labelHeight": 26,
+ "labelPosition": "INSIDE_TOP_CENTER",
+ "zIndex": 0,
+ "level": 3
+ },
+ {
+ "id": "grid w/ nested containers.b.b 1.b 2",
+ "type": "rectangle",
+ "pos": {
+ "x": 689,
+ "y": 172
+ },
+ "width": 266,
+ "height": 266,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "N7",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "b 2",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 20,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_TOP_CENTER",
+ "zIndex": 0,
+ "level": 4
+ },
+ {
+ "id": "grid w/ nested containers.b.b 1.b 2.b 3",
+ "type": "rectangle",
+ "pos": {
+ "x": 739,
+ "y": 222
+ },
+ "width": 166,
+ "height": 166,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "N7",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "b 3",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 20,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_TOP_CENTER",
+ "zIndex": 0,
+ "level": 5
+ },
+ {
+ "id": "grid w/ nested containers.b.b 1.b 2.b 3.b 4",
+ "type": "rectangle",
+ "pos": {
+ "x": 789,
+ "y": 272
+ },
+ "width": 66,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "N7",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "b 4",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 21,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 6
+ },
+ {
+ "id": "grid w/ nested containers.b.b 1.b 2a",
+ "type": "rectangle",
+ "pos": {
+ "x": 975,
+ "y": 172
+ },
+ "width": 273,
+ "height": 266,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "N7",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "b 2a",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 26,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_TOP_CENTER",
+ "zIndex": 0,
+ "level": 4
+ },
+ {
+ "id": "grid w/ nested containers.b.b 1.b 2a.b 3a",
+ "type": "rectangle",
+ "pos": {
+ "x": 1025,
+ "y": 222
+ },
+ "width": 173,
+ "height": 166,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "N7",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "b 3a",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 26,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_TOP_CENTER",
+ "zIndex": 0,
+ "level": 5
+ },
+ {
+ "id": "grid w/ nested containers.b.b 1.b 2a.b 3a.b 3a",
+ "type": "rectangle",
+ "pos": {
+ "x": 1075,
+ "y": 272
+ },
+ "width": 73,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "N7",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "b 3a",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 28,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 6
+ },
+ {
+ "id": "grid w/ nested containers.c",
+ "type": "rectangle",
+ "pos": {
+ "x": 496,
+ "y": 578
+ },
+ "width": 53,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "c",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "grid w/ nested containers.d",
+ "type": "rectangle",
+ "pos": {
+ "x": 589,
+ "y": 578
+ },
+ "width": 759,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "d",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 9,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "grid in grid",
+ "type": "rectangle",
+ "classes": [
+ "2x2"
+ ],
+ "pos": {
+ "x": 1428,
+ "y": 99
+ },
+ "width": 480,
+ "height": 518,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B4",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "grid in grid",
+ "fontSize": 28,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 124,
+ "labelHeight": 36,
+ "labelPosition": "INSIDE_TOP_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "grid in grid.a",
+ "type": "rectangle",
+ "pos": {
+ "x": 1488,
+ "y": 159
+ },
+ "width": 53,
+ "height": 292,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "a",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "grid in grid.b",
+ "type": "rectangle",
+ "classes": [
+ "2x2"
+ ],
+ "pos": {
+ "x": 1581,
+ "y": 159
+ },
+ "width": 267,
+ "height": 292,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "b",
+ "fontSize": 24,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 12,
+ "labelHeight": 31,
+ "labelPosition": "INSIDE_TOP_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "grid in grid.b.a",
+ "type": "rectangle",
+ "pos": {
+ "x": 1641,
+ "y": 219
+ },
+ "width": 53,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B6",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "a",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 3
+ },
+ {
+ "id": "grid in grid.b.b",
+ "type": "rectangle",
+ "pos": {
+ "x": 1734,
+ "y": 219
+ },
+ "width": 54,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B6",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "b",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 3
+ },
+ {
+ "id": "grid in grid.b.c",
+ "type": "rectangle",
+ "pos": {
+ "x": 1641,
+ "y": 325
+ },
+ "width": 53,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B6",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "c",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 3
+ },
+ {
+ "id": "grid in grid.b.d",
+ "type": "rectangle",
+ "pos": {
+ "x": 1734,
+ "y": 325
+ },
+ "width": 54,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B6",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "d",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 9,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 3
+ },
+ {
+ "id": "grid in grid.c",
+ "type": "rectangle",
+ "pos": {
+ "x": 1488,
+ "y": 491
+ },
+ "width": 53,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "c",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "grid in grid.d",
+ "type": "rectangle",
+ "pos": {
+ "x": 1581,
+ "y": 491
+ },
+ "width": 267,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "d",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 9,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "grid w/ grid w/ grid",
+ "type": "rectangle",
+ "pos": {
+ "x": 1928,
+ "y": 67
+ },
+ "width": 321,
+ "height": 581,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B4",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "grid w/ grid w/ grid",
+ "fontSize": 28,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 219,
+ "labelHeight": 36,
+ "labelPosition": "INSIDE_TOP_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "grid w/ grid w/ grid.a",
+ "type": "rectangle",
+ "pos": {
+ "x": 1928,
+ "y": 113
+ },
+ "width": 53,
+ "height": 469,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "a",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "grid w/ grid w/ grid.b",
+ "type": "rectangle",
+ "pos": {
+ "x": 1981,
+ "y": 113
+ },
+ "width": 268,
+ "height": 469,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "b",
+ "fontSize": 24,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 12,
+ "labelHeight": 31,
+ "labelPosition": "INSIDE_TOP_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "grid w/ grid w/ grid.b.a",
+ "type": "rectangle",
+ "pos": {
+ "x": 1981,
+ "y": 154
+ },
+ "width": 214,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B6",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "a",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 3
+ },
+ {
+ "id": "grid w/ grid w/ grid.b.b",
+ "type": "rectangle",
+ "pos": {
+ "x": 2195,
+ "y": 154
+ },
+ "width": 54,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B6",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "b",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 3
+ },
+ {
+ "id": "grid w/ grid w/ grid.b.c",
+ "type": "rectangle",
+ "pos": {
+ "x": 1981,
+ "y": 220
+ },
+ "width": 214,
+ "height": 362,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B6",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "c",
+ "fontSize": 20,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 9,
+ "labelHeight": 26,
+ "labelPosition": "INSIDE_TOP_CENTER",
+ "zIndex": 0,
+ "level": 3
+ },
+ {
+ "id": "grid w/ grid w/ grid.b.c.a",
+ "type": "rectangle",
+ "pos": {
+ "x": 1981,
+ "y": 256
+ },
+ "width": 53,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "N7",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "a",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 4
+ },
+ {
+ "id": "grid w/ grid w/ grid.b.c.b",
+ "type": "rectangle",
+ "pos": {
+ "x": 2034,
+ "y": 256
+ },
+ "width": 161,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "N7",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "b",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 4
+ },
+ {
+ "id": "grid w/ grid w/ grid.b.c.c",
+ "type": "rectangle",
+ "pos": {
+ "x": 1981,
+ "y": 322
+ },
+ "width": 53,
+ "height": 260,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "N7",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "c",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 4
+ },
+ {
+ "id": "grid w/ grid w/ grid.b.c.d",
+ "type": "rectangle",
+ "pos": {
+ "x": 2034,
+ "y": 322
+ },
+ "width": 161,
+ "height": 260,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "N7",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "d",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_TOP_CENTER",
+ "zIndex": 0,
+ "level": 4
+ },
+ {
+ "id": "grid w/ grid w/ grid.b.c.d.a",
+ "type": "rectangle",
+ "pos": {
+ "x": 2034,
+ "y": 353
+ },
+ "width": 107,
+ "height": 163,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "N7",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "a",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 7,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_TOP_CENTER",
+ "zIndex": 0,
+ "level": 5
+ },
+ {
+ "id": "grid w/ grid w/ grid.b.c.d.a.a",
+ "type": "rectangle",
+ "pos": {
+ "x": 2034,
+ "y": 384
+ },
+ "width": 53,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "N7",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "a",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 6
+ },
+ {
+ "id": "grid w/ grid w/ grid.b.c.d.a.b",
+ "type": "rectangle",
+ "pos": {
+ "x": 2087,
+ "y": 384
+ },
+ "width": 54,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "N7",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "b",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 6
+ },
+ {
+ "id": "grid w/ grid w/ grid.b.c.d.a.c",
+ "type": "rectangle",
+ "pos": {
+ "x": 2034,
+ "y": 450
+ },
+ "width": 53,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "N7",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "c",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 6
+ },
+ {
+ "id": "grid w/ grid w/ grid.b.c.d.a.d",
+ "type": "rectangle",
+ "pos": {
+ "x": 2087,
+ "y": 450
+ },
+ "width": 54,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "N7",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "d",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 9,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 6
+ },
+ {
+ "id": "grid w/ grid w/ grid.b.c.d.b",
+ "type": "rectangle",
+ "pos": {
+ "x": 2141,
+ "y": 353
+ },
+ "width": 54,
+ "height": 163,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "N7",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "b",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 5
+ },
+ {
+ "id": "grid w/ grid w/ grid.b.c.d.c",
+ "type": "rectangle",
+ "pos": {
+ "x": 2034,
+ "y": 516
+ },
+ "width": 107,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "N7",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "c",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 5
+ },
+ {
+ "id": "grid w/ grid w/ grid.b.c.d.d",
+ "type": "rectangle",
+ "pos": {
+ "x": 2141,
+ "y": 516
+ },
+ "width": 54,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "N7",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "d",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 9,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 5
+ },
+ {
+ "id": "grid w/ grid w/ grid.b.d",
+ "type": "rectangle",
+ "pos": {
+ "x": 2195,
+ "y": 220
+ },
+ "width": 54,
+ "height": 362,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B6",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "d",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 9,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 3
+ },
+ {
+ "id": "grid w/ grid w/ grid.c",
+ "type": "rectangle",
+ "pos": {
+ "x": 1928,
+ "y": 582
+ },
+ "width": 53,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "c",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "grid w/ grid w/ grid.d",
+ "type": "rectangle",
+ "pos": {
+ "x": 1981,
+ "y": 582
+ },
+ "width": 268,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "d",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 9,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ }
+ ],
+ "connections": [],
+ "root": {
+ "id": "",
+ "type": "",
+ "pos": {
+ "x": 0,
+ "y": 0
+ },
+ "width": 0,
+ "height": 0,
+ "opacity": 0,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "N7",
+ "stroke": "",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 0,
+ "fontFamily": "",
+ "language": "",
+ "color": "",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "zIndex": 0,
+ "level": 0
+ }
+}
diff --git a/e2etests/testdata/stable/grid_nested/elk/sketch.exp.svg b/e2etests/testdata/stable/grid_nested/elk/sketch.exp.svg
new file mode 100644
index 000000000..30711534e
--- /dev/null
+++ b/e2etests/testdata/stable/grid_nested/elk/sketch.exp.svg
@@ -0,0 +1,102 @@
+grid w/ container grid w/ nested containers grid in grid grid w/ grid w/ grid a b c d a b c d a b c d a b c d b child b 1 a b c d a b c d b 2 b 2a a b c d b 3 b 3a a b c d b 4 b 3a a b c d
+
+
+
\ No newline at end of file
diff --git a/e2etests/testdata/stable/grid_nested_gap0/dagre/board.exp.json b/e2etests/testdata/stable/grid_nested_gap0/dagre/board.exp.json
new file mode 100644
index 000000000..b58faa64f
--- /dev/null
+++ b/e2etests/testdata/stable/grid_nested_gap0/dagre/board.exp.json
@@ -0,0 +1,458 @@
+{
+ "name": "",
+ "isFolderOnly": false,
+ "fontFamily": "SourceSansPro",
+ "shapes": [
+ {
+ "id": "The Universe",
+ "type": "rectangle",
+ "pos": {
+ "x": 0,
+ "y": 0
+ },
+ "width": 400,
+ "height": 366,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B4",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "The Universe",
+ "fontSize": 28,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 152,
+ "labelHeight": 36,
+ "labelPosition": "INSIDE_TOP_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "The Universe.FirstTwo",
+ "type": "rectangle",
+ "pos": {
+ "x": 0,
+ "y": 46
+ },
+ "width": 300,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "FirstTwo",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 62,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "The Universe.Last",
+ "type": "rectangle",
+ "pos": {
+ "x": 300,
+ "y": 46
+ },
+ "width": 100,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "red",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "Last",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 29,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "The Universe.TALA",
+ "type": "rectangle",
+ "pos": {
+ "x": 0,
+ "y": 112
+ },
+ "width": 100,
+ "height": 193,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 24,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_TOP_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "The Universe.TALA.TALA",
+ "type": "rectangle",
+ "pos": {
+ "x": 0,
+ "y": 112
+ },
+ "width": 100,
+ "height": 61,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B6",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "TALA",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 37,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 3
+ },
+ {
+ "id": "The Universe.TALA.D2",
+ "type": "rectangle",
+ "pos": {
+ "x": 0,
+ "y": 173
+ },
+ "width": 100,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B6",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "D2",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 18,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 3
+ },
+ {
+ "id": "The Universe.TALA.Cloud",
+ "type": "rectangle",
+ "pos": {
+ "x": 0,
+ "y": 239
+ },
+ "width": 100,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B6",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "Cloud",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 41,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 3
+ },
+ {
+ "id": "The Universe.D2",
+ "type": "rectangle",
+ "pos": {
+ "x": 100,
+ "y": 112
+ },
+ "width": 200,
+ "height": 193,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "D2",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 18,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "The Universe.Cloud",
+ "type": "rectangle",
+ "pos": {
+ "x": 300,
+ "y": 112
+ },
+ "width": 100,
+ "height": 193,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "Cloud",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 41,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "The Universe.Terrastruct",
+ "type": "rectangle",
+ "pos": {
+ "x": 0,
+ "y": 305
+ },
+ "width": 400,
+ "height": 61,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "Terrastruct",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 81,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ }
+ ],
+ "connections": [],
+ "root": {
+ "id": "",
+ "type": "",
+ "pos": {
+ "x": 0,
+ "y": 0
+ },
+ "width": 0,
+ "height": 0,
+ "opacity": 0,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "N7",
+ "stroke": "",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 0,
+ "fontFamily": "",
+ "language": "",
+ "color": "",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "zIndex": 0,
+ "level": 0
+ }
+}
diff --git a/e2etests/testdata/stable/grid_nested_gap0/dagre/sketch.exp.svg b/e2etests/testdata/stable/grid_nested_gap0/dagre/sketch.exp.svg
new file mode 100644
index 000000000..4d9c96d6a
--- /dev/null
+++ b/e2etests/testdata/stable/grid_nested_gap0/dagre/sketch.exp.svg
@@ -0,0 +1,102 @@
+The Universe FirstTwo Last D2 Cloud Terrastruct TALA D2 Cloud
+
+
+
\ No newline at end of file
diff --git a/e2etests/testdata/stable/grid_nested_gap0/elk/board.exp.json b/e2etests/testdata/stable/grid_nested_gap0/elk/board.exp.json
new file mode 100644
index 000000000..caf8dd38e
--- /dev/null
+++ b/e2etests/testdata/stable/grid_nested_gap0/elk/board.exp.json
@@ -0,0 +1,458 @@
+{
+ "name": "",
+ "isFolderOnly": false,
+ "fontFamily": "SourceSansPro",
+ "shapes": [
+ {
+ "id": "The Universe",
+ "type": "rectangle",
+ "pos": {
+ "x": 12,
+ "y": 12
+ },
+ "width": 400,
+ "height": 366,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B4",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "The Universe",
+ "fontSize": 28,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 152,
+ "labelHeight": 36,
+ "labelPosition": "INSIDE_TOP_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "The Universe.FirstTwo",
+ "type": "rectangle",
+ "pos": {
+ "x": 12,
+ "y": 58
+ },
+ "width": 300,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "FirstTwo",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 62,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "The Universe.Last",
+ "type": "rectangle",
+ "pos": {
+ "x": 312,
+ "y": 58
+ },
+ "width": 100,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "red",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "Last",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 29,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "The Universe.TALA",
+ "type": "rectangle",
+ "pos": {
+ "x": 12,
+ "y": 124
+ },
+ "width": 100,
+ "height": 193,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 24,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "INSIDE_TOP_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "The Universe.TALA.TALA",
+ "type": "rectangle",
+ "pos": {
+ "x": 12,
+ "y": 124
+ },
+ "width": 100,
+ "height": 61,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B6",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "TALA",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 37,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 3
+ },
+ {
+ "id": "The Universe.TALA.D2",
+ "type": "rectangle",
+ "pos": {
+ "x": 12,
+ "y": 185
+ },
+ "width": 100,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B6",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "D2",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 18,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 3
+ },
+ {
+ "id": "The Universe.TALA.Cloud",
+ "type": "rectangle",
+ "pos": {
+ "x": 12,
+ "y": 251
+ },
+ "width": 100,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B6",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "Cloud",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 41,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 3
+ },
+ {
+ "id": "The Universe.D2",
+ "type": "rectangle",
+ "pos": {
+ "x": 112,
+ "y": 124
+ },
+ "width": 200,
+ "height": 193,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "D2",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 18,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "The Universe.Cloud",
+ "type": "rectangle",
+ "pos": {
+ "x": 312,
+ "y": 124
+ },
+ "width": 100,
+ "height": 193,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "Cloud",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 41,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "The Universe.Terrastruct",
+ "type": "rectangle",
+ "pos": {
+ "x": 12,
+ "y": 317
+ },
+ "width": 400,
+ "height": 61,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "Terrastruct",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 81,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ }
+ ],
+ "connections": [],
+ "root": {
+ "id": "",
+ "type": "",
+ "pos": {
+ "x": 0,
+ "y": 0
+ },
+ "width": 0,
+ "height": 0,
+ "opacity": 0,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "N7",
+ "stroke": "",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 0,
+ "fontFamily": "",
+ "language": "",
+ "color": "",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "zIndex": 0,
+ "level": 0
+ }
+}
diff --git a/e2etests/testdata/stable/grid_nested_gap0/elk/sketch.exp.svg b/e2etests/testdata/stable/grid_nested_gap0/elk/sketch.exp.svg
new file mode 100644
index 000000000..9e40971c5
--- /dev/null
+++ b/e2etests/testdata/stable/grid_nested_gap0/elk/sketch.exp.svg
@@ -0,0 +1,102 @@
+The Universe FirstTwo Last D2 Cloud Terrastruct TALA D2 Cloud
+
+
+
\ No newline at end of file
diff --git a/e2etests/testdata/stable/grid_tests/dagre/sketch.exp.svg b/e2etests/testdata/stable/grid_tests/dagre/sketch.exp.svg
index a369b88e4..f19b8aca8 100644
--- a/e2etests/testdata/stable/grid_tests/dagre/sketch.exp.svg
+++ b/e2etests/testdata/stable/grid_tests/dagre/sketch.exp.svg
@@ -1,17 +1,17 @@
-
-
- hexagon
-
+ .d2-1882421018 .fill-N1{fill:#0A0F25;}
+ .d2-1882421018 .fill-N2{fill:#676C7E;}
+ .d2-1882421018 .fill-N3{fill:#9499AB;}
+ .d2-1882421018 .fill-N4{fill:#CFD2DD;}
+ .d2-1882421018 .fill-N5{fill:#DEE1EB;}
+ .d2-1882421018 .fill-N6{fill:#EEF1F8;}
+ .d2-1882421018 .fill-N7{fill:#FFFFFF;}
+ .d2-1882421018 .fill-B1{fill:#0D32B2;}
+ .d2-1882421018 .fill-B2{fill:#0D32B2;}
+ .d2-1882421018 .fill-B3{fill:#E3E9FD;}
+ .d2-1882421018 .fill-B4{fill:#E3E9FD;}
+ .d2-1882421018 .fill-B5{fill:#EDF0FD;}
+ .d2-1882421018 .fill-B6{fill:#F7F8FE;}
+ .d2-1882421018 .fill-AA2{fill:#4A6FF3;}
+ .d2-1882421018 .fill-AA4{fill:#EDF0FD;}
+ .d2-1882421018 .fill-AA5{fill:#F7F8FE;}
+ .d2-1882421018 .fill-AB4{fill:#EDF0FD;}
+ .d2-1882421018 .fill-AB5{fill:#F7F8FE;}
+ .d2-1882421018 .stroke-N1{stroke:#0A0F25;}
+ .d2-1882421018 .stroke-N2{stroke:#676C7E;}
+ .d2-1882421018 .stroke-N3{stroke:#9499AB;}
+ .d2-1882421018 .stroke-N4{stroke:#CFD2DD;}
+ .d2-1882421018 .stroke-N5{stroke:#DEE1EB;}
+ .d2-1882421018 .stroke-N6{stroke:#EEF1F8;}
+ .d2-1882421018 .stroke-N7{stroke:#FFFFFF;}
+ .d2-1882421018 .stroke-B1{stroke:#0D32B2;}
+ .d2-1882421018 .stroke-B2{stroke:#0D32B2;}
+ .d2-1882421018 .stroke-B3{stroke:#E3E9FD;}
+ .d2-1882421018 .stroke-B4{stroke:#E3E9FD;}
+ .d2-1882421018 .stroke-B5{stroke:#EDF0FD;}
+ .d2-1882421018 .stroke-B6{stroke:#F7F8FE;}
+ .d2-1882421018 .stroke-AA2{stroke:#4A6FF3;}
+ .d2-1882421018 .stroke-AA4{stroke:#EDF0FD;}
+ .d2-1882421018 .stroke-AA5{stroke:#F7F8FE;}
+ .d2-1882421018 .stroke-AB4{stroke:#EDF0FD;}
+ .d2-1882421018 .stroke-AB5{stroke:#F7F8FE;}
+ .d2-1882421018 .background-color-N1{background-color:#0A0F25;}
+ .d2-1882421018 .background-color-N2{background-color:#676C7E;}
+ .d2-1882421018 .background-color-N3{background-color:#9499AB;}
+ .d2-1882421018 .background-color-N4{background-color:#CFD2DD;}
+ .d2-1882421018 .background-color-N5{background-color:#DEE1EB;}
+ .d2-1882421018 .background-color-N6{background-color:#EEF1F8;}
+ .d2-1882421018 .background-color-N7{background-color:#FFFFFF;}
+ .d2-1882421018 .background-color-B1{background-color:#0D32B2;}
+ .d2-1882421018 .background-color-B2{background-color:#0D32B2;}
+ .d2-1882421018 .background-color-B3{background-color:#E3E9FD;}
+ .d2-1882421018 .background-color-B4{background-color:#E3E9FD;}
+ .d2-1882421018 .background-color-B5{background-color:#EDF0FD;}
+ .d2-1882421018 .background-color-B6{background-color:#F7F8FE;}
+ .d2-1882421018 .background-color-AA2{background-color:#4A6FF3;}
+ .d2-1882421018 .background-color-AA4{background-color:#EDF0FD;}
+ .d2-1882421018 .background-color-AA5{background-color:#F7F8FE;}
+ .d2-1882421018 .background-color-AB4{background-color:#EDF0FD;}
+ .d2-1882421018 .background-color-AB5{background-color:#F7F8FE;}
+ .d2-1882421018 .color-N1{color:#0A0F25;}
+ .d2-1882421018 .color-N2{color:#676C7E;}
+ .d2-1882421018 .color-N3{color:#9499AB;}
+ .d2-1882421018 .color-N4{color:#CFD2DD;}
+ .d2-1882421018 .color-N5{color:#DEE1EB;}
+ .d2-1882421018 .color-N6{color:#EEF1F8;}
+ .d2-1882421018 .color-N7{color:#FFFFFF;}
+ .d2-1882421018 .color-B1{color:#0D32B2;}
+ .d2-1882421018 .color-B2{color:#0D32B2;}
+ .d2-1882421018 .color-B3{color:#E3E9FD;}
+ .d2-1882421018 .color-B4{color:#E3E9FD;}
+ .d2-1882421018 .color-B5{color:#EDF0FD;}
+ .d2-1882421018 .color-B6{color:#F7F8FE;}
+ .d2-1882421018 .color-AA2{color:#4A6FF3;}
+ .d2-1882421018 .color-AA4{color:#EDF0FD;}
+ .d2-1882421018 .color-AA5{color:#F7F8FE;}
+ .d2-1882421018 .color-AB4{color:#EDF0FD;}
+ .d2-1882421018 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>
+
+ hexagon
+
\ No newline at end of file
diff --git a/e2etests/testdata/stable/hexagon_3d/elk/board.exp.json b/e2etests/testdata/stable/hexagon_3d/elk/board.exp.json
index 65fdd2259..bdbf19a73 100644
--- a/e2etests/testdata/stable/hexagon_3d/elk/board.exp.json
+++ b/e2etests/testdata/stable/hexagon_3d/elk/board.exp.json
@@ -8,7 +8,7 @@
"type": "hexagon",
"pos": {
"x": 12,
- "y": 12
+ "y": 19
},
"width": 128,
"height": 69,
diff --git a/e2etests/testdata/stable/hexagon_3d/elk/sketch.exp.svg b/e2etests/testdata/stable/hexagon_3d/elk/sketch.exp.svg
index 83ed5f125..242e667de 100644
--- a/e2etests/testdata/stable/hexagon_3d/elk/sketch.exp.svg
+++ b/e2etests/testdata/stable/hexagon_3d/elk/sketch.exp.svg
@@ -1,10 +1,10 @@
-
-
- hexagon
-
+ .d2-3450222334 .fill-N1{fill:#0A0F25;}
+ .d2-3450222334 .fill-N2{fill:#676C7E;}
+ .d2-3450222334 .fill-N3{fill:#9499AB;}
+ .d2-3450222334 .fill-N4{fill:#CFD2DD;}
+ .d2-3450222334 .fill-N5{fill:#DEE1EB;}
+ .d2-3450222334 .fill-N6{fill:#EEF1F8;}
+ .d2-3450222334 .fill-N7{fill:#FFFFFF;}
+ .d2-3450222334 .fill-B1{fill:#0D32B2;}
+ .d2-3450222334 .fill-B2{fill:#0D32B2;}
+ .d2-3450222334 .fill-B3{fill:#E3E9FD;}
+ .d2-3450222334 .fill-B4{fill:#E3E9FD;}
+ .d2-3450222334 .fill-B5{fill:#EDF0FD;}
+ .d2-3450222334 .fill-B6{fill:#F7F8FE;}
+ .d2-3450222334 .fill-AA2{fill:#4A6FF3;}
+ .d2-3450222334 .fill-AA4{fill:#EDF0FD;}
+ .d2-3450222334 .fill-AA5{fill:#F7F8FE;}
+ .d2-3450222334 .fill-AB4{fill:#EDF0FD;}
+ .d2-3450222334 .fill-AB5{fill:#F7F8FE;}
+ .d2-3450222334 .stroke-N1{stroke:#0A0F25;}
+ .d2-3450222334 .stroke-N2{stroke:#676C7E;}
+ .d2-3450222334 .stroke-N3{stroke:#9499AB;}
+ .d2-3450222334 .stroke-N4{stroke:#CFD2DD;}
+ .d2-3450222334 .stroke-N5{stroke:#DEE1EB;}
+ .d2-3450222334 .stroke-N6{stroke:#EEF1F8;}
+ .d2-3450222334 .stroke-N7{stroke:#FFFFFF;}
+ .d2-3450222334 .stroke-B1{stroke:#0D32B2;}
+ .d2-3450222334 .stroke-B2{stroke:#0D32B2;}
+ .d2-3450222334 .stroke-B3{stroke:#E3E9FD;}
+ .d2-3450222334 .stroke-B4{stroke:#E3E9FD;}
+ .d2-3450222334 .stroke-B5{stroke:#EDF0FD;}
+ .d2-3450222334 .stroke-B6{stroke:#F7F8FE;}
+ .d2-3450222334 .stroke-AA2{stroke:#4A6FF3;}
+ .d2-3450222334 .stroke-AA4{stroke:#EDF0FD;}
+ .d2-3450222334 .stroke-AA5{stroke:#F7F8FE;}
+ .d2-3450222334 .stroke-AB4{stroke:#EDF0FD;}
+ .d2-3450222334 .stroke-AB5{stroke:#F7F8FE;}
+ .d2-3450222334 .background-color-N1{background-color:#0A0F25;}
+ .d2-3450222334 .background-color-N2{background-color:#676C7E;}
+ .d2-3450222334 .background-color-N3{background-color:#9499AB;}
+ .d2-3450222334 .background-color-N4{background-color:#CFD2DD;}
+ .d2-3450222334 .background-color-N5{background-color:#DEE1EB;}
+ .d2-3450222334 .background-color-N6{background-color:#EEF1F8;}
+ .d2-3450222334 .background-color-N7{background-color:#FFFFFF;}
+ .d2-3450222334 .background-color-B1{background-color:#0D32B2;}
+ .d2-3450222334 .background-color-B2{background-color:#0D32B2;}
+ .d2-3450222334 .background-color-B3{background-color:#E3E9FD;}
+ .d2-3450222334 .background-color-B4{background-color:#E3E9FD;}
+ .d2-3450222334 .background-color-B5{background-color:#EDF0FD;}
+ .d2-3450222334 .background-color-B6{background-color:#F7F8FE;}
+ .d2-3450222334 .background-color-AA2{background-color:#4A6FF3;}
+ .d2-3450222334 .background-color-AA4{background-color:#EDF0FD;}
+ .d2-3450222334 .background-color-AA5{background-color:#F7F8FE;}
+ .d2-3450222334 .background-color-AB4{background-color:#EDF0FD;}
+ .d2-3450222334 .background-color-AB5{background-color:#F7F8FE;}
+ .d2-3450222334 .color-N1{color:#0A0F25;}
+ .d2-3450222334 .color-N2{color:#676C7E;}
+ .d2-3450222334 .color-N3{color:#9499AB;}
+ .d2-3450222334 .color-N4{color:#CFD2DD;}
+ .d2-3450222334 .color-N5{color:#DEE1EB;}
+ .d2-3450222334 .color-N6{color:#EEF1F8;}
+ .d2-3450222334 .color-N7{color:#FFFFFF;}
+ .d2-3450222334 .color-B1{color:#0D32B2;}
+ .d2-3450222334 .color-B2{color:#0D32B2;}
+ .d2-3450222334 .color-B3{color:#E3E9FD;}
+ .d2-3450222334 .color-B4{color:#E3E9FD;}
+ .d2-3450222334 .color-B5{color:#EDF0FD;}
+ .d2-3450222334 .color-B6{color:#F7F8FE;}
+ .d2-3450222334 .color-AA2{color:#4A6FF3;}
+ .d2-3450222334 .color-AA4{color:#EDF0FD;}
+ .d2-3450222334 .color-AA5{color:#F7F8FE;}
+ .d2-3450222334 .color-AB4{color:#EDF0FD;}
+ .d2-3450222334 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>
+
+ hexagon
+
\ No newline at end of file
diff --git a/e2etests/testdata/stable/hr/dagre/sketch.exp.svg b/e2etests/testdata/stable/hr/dagre/sketch.exp.svg
index 6cd0dd0b5..4b0b6e538 100644
--- a/e2etests/testdata/stable/hr/dagre/sketch.exp.svg
+++ b/e2etests/testdata/stable/hr/dagre/sketch.exp.svg
@@ -1,21 +1,21 @@
-aa bb cc dd ff ii jj kk ll nn ss uu ww rm yy ad ee gg hh mm mm oo pp qq rr tt vv xx zz ab ac 1 2 3 4 5 6
+ .d2-890588819 .fill-N1{fill:#0A0F25;}
+ .d2-890588819 .fill-N2{fill:#676C7E;}
+ .d2-890588819 .fill-N3{fill:#9499AB;}
+ .d2-890588819 .fill-N4{fill:#CFD2DD;}
+ .d2-890588819 .fill-N5{fill:#DEE1EB;}
+ .d2-890588819 .fill-N6{fill:#EEF1F8;}
+ .d2-890588819 .fill-N7{fill:#FFFFFF;}
+ .d2-890588819 .fill-B1{fill:#0D32B2;}
+ .d2-890588819 .fill-B2{fill:#0D32B2;}
+ .d2-890588819 .fill-B3{fill:#E3E9FD;}
+ .d2-890588819 .fill-B4{fill:#E3E9FD;}
+ .d2-890588819 .fill-B5{fill:#EDF0FD;}
+ .d2-890588819 .fill-B6{fill:#F7F8FE;}
+ .d2-890588819 .fill-AA2{fill:#4A6FF3;}
+ .d2-890588819 .fill-AA4{fill:#EDF0FD;}
+ .d2-890588819 .fill-AA5{fill:#F7F8FE;}
+ .d2-890588819 .fill-AB4{fill:#EDF0FD;}
+ .d2-890588819 .fill-AB5{fill:#F7F8FE;}
+ .d2-890588819 .stroke-N1{stroke:#0A0F25;}
+ .d2-890588819 .stroke-N2{stroke:#676C7E;}
+ .d2-890588819 .stroke-N3{stroke:#9499AB;}
+ .d2-890588819 .stroke-N4{stroke:#CFD2DD;}
+ .d2-890588819 .stroke-N5{stroke:#DEE1EB;}
+ .d2-890588819 .stroke-N6{stroke:#EEF1F8;}
+ .d2-890588819 .stroke-N7{stroke:#FFFFFF;}
+ .d2-890588819 .stroke-B1{stroke:#0D32B2;}
+ .d2-890588819 .stroke-B2{stroke:#0D32B2;}
+ .d2-890588819 .stroke-B3{stroke:#E3E9FD;}
+ .d2-890588819 .stroke-B4{stroke:#E3E9FD;}
+ .d2-890588819 .stroke-B5{stroke:#EDF0FD;}
+ .d2-890588819 .stroke-B6{stroke:#F7F8FE;}
+ .d2-890588819 .stroke-AA2{stroke:#4A6FF3;}
+ .d2-890588819 .stroke-AA4{stroke:#EDF0FD;}
+ .d2-890588819 .stroke-AA5{stroke:#F7F8FE;}
+ .d2-890588819 .stroke-AB4{stroke:#EDF0FD;}
+ .d2-890588819 .stroke-AB5{stroke:#F7F8FE;}
+ .d2-890588819 .background-color-N1{background-color:#0A0F25;}
+ .d2-890588819 .background-color-N2{background-color:#676C7E;}
+ .d2-890588819 .background-color-N3{background-color:#9499AB;}
+ .d2-890588819 .background-color-N4{background-color:#CFD2DD;}
+ .d2-890588819 .background-color-N5{background-color:#DEE1EB;}
+ .d2-890588819 .background-color-N6{background-color:#EEF1F8;}
+ .d2-890588819 .background-color-N7{background-color:#FFFFFF;}
+ .d2-890588819 .background-color-B1{background-color:#0D32B2;}
+ .d2-890588819 .background-color-B2{background-color:#0D32B2;}
+ .d2-890588819 .background-color-B3{background-color:#E3E9FD;}
+ .d2-890588819 .background-color-B4{background-color:#E3E9FD;}
+ .d2-890588819 .background-color-B5{background-color:#EDF0FD;}
+ .d2-890588819 .background-color-B6{background-color:#F7F8FE;}
+ .d2-890588819 .background-color-AA2{background-color:#4A6FF3;}
+ .d2-890588819 .background-color-AA4{background-color:#EDF0FD;}
+ .d2-890588819 .background-color-AA5{background-color:#F7F8FE;}
+ .d2-890588819 .background-color-AB4{background-color:#EDF0FD;}
+ .d2-890588819 .background-color-AB5{background-color:#F7F8FE;}
+ .d2-890588819 .color-N1{color:#0A0F25;}
+ .d2-890588819 .color-N2{color:#676C7E;}
+ .d2-890588819 .color-N3{color:#9499AB;}
+ .d2-890588819 .color-N4{color:#CFD2DD;}
+ .d2-890588819 .color-N5{color:#DEE1EB;}
+ .d2-890588819 .color-N6{color:#EEF1F8;}
+ .d2-890588819 .color-N7{color:#FFFFFF;}
+ .d2-890588819 .color-B1{color:#0D32B2;}
+ .d2-890588819 .color-B2{color:#0D32B2;}
+ .d2-890588819 .color-B3{color:#E3E9FD;}
+ .d2-890588819 .color-B4{color:#E3E9FD;}
+ .d2-890588819 .color-B5{color:#EDF0FD;}
+ .d2-890588819 .color-B6{color:#F7F8FE;}
+ .d2-890588819 .color-AA2{color:#4A6FF3;}
+ .d2-890588819 .color-AA4{color:#EDF0FD;}
+ .d2-890588819 .color-AA5{color:#F7F8FE;}
+ .d2-890588819 .color-AB4{color:#EDF0FD;}
+ .d2-890588819 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>aa bb cc dd ff ii jj kk ll nn ss uu ww rm yy ad ee gg hh mm mm oo pp qq rr tt vv xx zz ab ac 1 2 3 4 5 6
diff --git a/e2etests/testdata/stable/investigate/elk/board.exp.json b/e2etests/testdata/stable/investigate/elk/board.exp.json
index 2d1681b39..b0794985d 100644
--- a/e2etests/testdata/stable/investigate/elk/board.exp.json
+++ b/e2etests/testdata/stable/investigate/elk/board.exp.json
@@ -1371,7 +1371,7 @@
"y": 334
},
{
- "x": 235.66666666666669,
+ "x": 235.66600036621094,
"y": 334
},
{
@@ -1413,11 +1413,11 @@
"y": 113
},
{
- "x": 229.08333333333334,
+ "x": 229.08299255371094,
"y": 153
},
{
- "x": 150.66666666666669,
+ "x": 150.66600036621094,
"y": 153
},
{
@@ -1459,7 +1459,7 @@
"y": 294
},
{
- "x": 314.33333333333337,
+ "x": 314.3330078125,
"y": 334
},
{
@@ -1543,7 +1543,7 @@
"y": 783
},
{
- "x": 150.66666666666669,
+ "x": 150.66600036621094,
"y": 873
},
{
@@ -1628,7 +1628,7 @@
},
{
"x": 235,
- "y": 1501.6666666666667
+ "y": 1501.666015625
}
],
"animated": false,
@@ -1661,15 +1661,15 @@
"labelPercentage": 0,
"route": [
{
- "x": 248.33333333333334,
- "y": 1567.6666666666667
+ "x": 248.33299255371094,
+ "y": 1567.666015625
},
{
- "x": 248.33333333333334,
+ "x": 248.33299255371094,
"y": 1646
},
{
- "x": 442.58333333333337,
+ "x": 442.5830078125,
"y": 1646
},
{
@@ -1711,11 +1711,11 @@
"y": 2026
},
{
- "x": 463.66666666666663,
+ "x": 463.6659851074219,
"y": 2121
},
{
- "x": 351.66666666666663,
+ "x": 351.6659851074219,
"y": 2121
},
{
@@ -1757,23 +1757,23 @@
"y": 2599
},
{
- "x": 341.66666666666663,
+ "x": 341.6659851074219,
"y": 2880
},
{
- "x": 94.66666666666666,
+ "x": 94.66600036621094,
"y": 2880
},
{
- "x": 94.66666666666666,
+ "x": 94.66600036621094,
"y": 3424
},
{
- "x": 160.58333333333331,
+ "x": 160.58299255371094,
"y": 3424
},
{
- "x": 160.58333333333331,
+ "x": 160.58299255371094,
"y": 3582
}
],
@@ -1811,15 +1811,15 @@
"y": 2031
},
{
- "x": 363.16666666666663,
+ "x": 363.1659851074219,
"y": 2071
},
{
- "x": 434.16666666666663,
+ "x": 434.1659851074219,
"y": 2071
},
{
- "x": 434.16666666666663,
+ "x": 434.1659851074219,
"y": 2161
}
],
@@ -1853,11 +1853,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 434.16666666666663,
+ "x": 434.1659851074219,
"y": 2227
},
{
- "x": 434.16666666666663,
+ "x": 434.1659851074219,
"y": 2525.5
}
],
@@ -1891,11 +1891,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 434.16666666666663,
+ "x": 434.1659851074219,
"y": 2591.5
},
{
- "x": 434.16666666666663,
+ "x": 434.1659851074219,
"y": 2669
}
],
@@ -1933,11 +1933,11 @@
"y": 783
},
{
- "x": 235.66666666666669,
+ "x": 235.66600036621094,
"y": 823
},
{
- "x": 93.49999999999999,
+ "x": 93.4990005493164,
"y": 823
},
{
@@ -2013,8 +2013,8 @@
"labelPercentage": 0,
"route": [
{
- "x": 221.66666666666669,
- "y": 1567.6666666666667
+ "x": 221.66600036621094,
+ "y": 1567.666015625
},
{
"x": 222,
@@ -2059,7 +2059,7 @@
"y": 1646
},
{
- "x": 153.00000000000003,
+ "x": 153,
"y": 1646
},
{
@@ -2102,7 +2102,7 @@
},
{
"x": 153,
- "y": 2635.3333333333335
+ "y": 2635.3330078125
}
],
"animated": false,
@@ -2135,19 +2135,19 @@
"labelPercentage": 0,
"route": [
{
- "x": 139.66666666666666,
- "y": 2701.3333333333335
+ "x": 139.66600036621094,
+ "y": 2701.3330078125
},
{
- "x": 139.66666666666666,
+ "x": 139.66600036621094,
"y": 3374
},
{
- "x": 243.08333333333331,
+ "x": 243.08299255371094,
"y": 3374
},
{
- "x": 243.08333333333331,
+ "x": 243.08299255371094,
"y": 3582
}
],
@@ -2181,7 +2181,7 @@
"labelPercentage": 0,
"route": [
{
- "x": 451.8333333333333,
+ "x": 451.8330078125,
"y": 2735
},
{
@@ -2219,15 +2219,15 @@
"labelPercentage": 0,
"route": [
{
- "x": 166.33333333333334,
- "y": 2701.3333333333335
+ "x": 166.33299255371094,
+ "y": 2701.3330078125
},
{
- "x": 166.33333333333334,
+ "x": 166.33299255371094,
"y": 2830
},
{
- "x": 405.83333333333337,
+ "x": 405.8330078125,
"y": 2830
},
{
@@ -2269,7 +2269,7 @@
"y": 3143
},
{
- "x": 428.83333333333337,
+ "x": 428.8330078125,
"y": 3213
}
],
@@ -2303,19 +2303,19 @@
"labelPercentage": 0,
"route": [
{
- "x": 428.83333333333337,
+ "x": 428.8330078125,
"y": 3279
},
{
- "x": 428.83333333333337,
+ "x": 428.8330078125,
"y": 3374
},
{
- "x": 325.08333333333337,
+ "x": 325.0830078125,
"y": 3374
},
{
- "x": 325.08333333333337,
+ "x": 325.0830078125,
"y": 3582
}
],
@@ -2349,7 +2349,7 @@
"labelPercentage": 0,
"route": [
{
- "x": 325.0833333333333,
+ "x": 325.0830078125,
"y": 3648
},
{
@@ -2391,11 +2391,11 @@
"y": 1804
},
{
- "x": 202.66666666666669,
+ "x": 202.66600036621094,
"y": 1844
},
{
- "x": 349.83333333333337,
+ "x": 349.8330078125,
"y": 1844
},
{
diff --git a/e2etests/testdata/stable/investigate/elk/sketch.exp.svg b/e2etests/testdata/stable/investigate/elk/sketch.exp.svg
index bcaf3502f..4ffc78759 100644
--- a/e2etests/testdata/stable/investigate/elk/sketch.exp.svg
+++ b/e2etests/testdata/stable/investigate/elk/sketch.exp.svg
@@ -1,24 +1,24 @@
-aa bb cc dd ff ii jj kk ll nn ss uu ww rm yy ad ee gg hh mm mm oo pp qq rr tt vv xx zz ab ac 1 2 3 4 5 6
+ .d2-4046917272 .fill-N1{fill:#0A0F25;}
+ .d2-4046917272 .fill-N2{fill:#676C7E;}
+ .d2-4046917272 .fill-N3{fill:#9499AB;}
+ .d2-4046917272 .fill-N4{fill:#CFD2DD;}
+ .d2-4046917272 .fill-N5{fill:#DEE1EB;}
+ .d2-4046917272 .fill-N6{fill:#EEF1F8;}
+ .d2-4046917272 .fill-N7{fill:#FFFFFF;}
+ .d2-4046917272 .fill-B1{fill:#0D32B2;}
+ .d2-4046917272 .fill-B2{fill:#0D32B2;}
+ .d2-4046917272 .fill-B3{fill:#E3E9FD;}
+ .d2-4046917272 .fill-B4{fill:#E3E9FD;}
+ .d2-4046917272 .fill-B5{fill:#EDF0FD;}
+ .d2-4046917272 .fill-B6{fill:#F7F8FE;}
+ .d2-4046917272 .fill-AA2{fill:#4A6FF3;}
+ .d2-4046917272 .fill-AA4{fill:#EDF0FD;}
+ .d2-4046917272 .fill-AA5{fill:#F7F8FE;}
+ .d2-4046917272 .fill-AB4{fill:#EDF0FD;}
+ .d2-4046917272 .fill-AB5{fill:#F7F8FE;}
+ .d2-4046917272 .stroke-N1{stroke:#0A0F25;}
+ .d2-4046917272 .stroke-N2{stroke:#676C7E;}
+ .d2-4046917272 .stroke-N3{stroke:#9499AB;}
+ .d2-4046917272 .stroke-N4{stroke:#CFD2DD;}
+ .d2-4046917272 .stroke-N5{stroke:#DEE1EB;}
+ .d2-4046917272 .stroke-N6{stroke:#EEF1F8;}
+ .d2-4046917272 .stroke-N7{stroke:#FFFFFF;}
+ .d2-4046917272 .stroke-B1{stroke:#0D32B2;}
+ .d2-4046917272 .stroke-B2{stroke:#0D32B2;}
+ .d2-4046917272 .stroke-B3{stroke:#E3E9FD;}
+ .d2-4046917272 .stroke-B4{stroke:#E3E9FD;}
+ .d2-4046917272 .stroke-B5{stroke:#EDF0FD;}
+ .d2-4046917272 .stroke-B6{stroke:#F7F8FE;}
+ .d2-4046917272 .stroke-AA2{stroke:#4A6FF3;}
+ .d2-4046917272 .stroke-AA4{stroke:#EDF0FD;}
+ .d2-4046917272 .stroke-AA5{stroke:#F7F8FE;}
+ .d2-4046917272 .stroke-AB4{stroke:#EDF0FD;}
+ .d2-4046917272 .stroke-AB5{stroke:#F7F8FE;}
+ .d2-4046917272 .background-color-N1{background-color:#0A0F25;}
+ .d2-4046917272 .background-color-N2{background-color:#676C7E;}
+ .d2-4046917272 .background-color-N3{background-color:#9499AB;}
+ .d2-4046917272 .background-color-N4{background-color:#CFD2DD;}
+ .d2-4046917272 .background-color-N5{background-color:#DEE1EB;}
+ .d2-4046917272 .background-color-N6{background-color:#EEF1F8;}
+ .d2-4046917272 .background-color-N7{background-color:#FFFFFF;}
+ .d2-4046917272 .background-color-B1{background-color:#0D32B2;}
+ .d2-4046917272 .background-color-B2{background-color:#0D32B2;}
+ .d2-4046917272 .background-color-B3{background-color:#E3E9FD;}
+ .d2-4046917272 .background-color-B4{background-color:#E3E9FD;}
+ .d2-4046917272 .background-color-B5{background-color:#EDF0FD;}
+ .d2-4046917272 .background-color-B6{background-color:#F7F8FE;}
+ .d2-4046917272 .background-color-AA2{background-color:#4A6FF3;}
+ .d2-4046917272 .background-color-AA4{background-color:#EDF0FD;}
+ .d2-4046917272 .background-color-AA5{background-color:#F7F8FE;}
+ .d2-4046917272 .background-color-AB4{background-color:#EDF0FD;}
+ .d2-4046917272 .background-color-AB5{background-color:#F7F8FE;}
+ .d2-4046917272 .color-N1{color:#0A0F25;}
+ .d2-4046917272 .color-N2{color:#676C7E;}
+ .d2-4046917272 .color-N3{color:#9499AB;}
+ .d2-4046917272 .color-N4{color:#CFD2DD;}
+ .d2-4046917272 .color-N5{color:#DEE1EB;}
+ .d2-4046917272 .color-N6{color:#EEF1F8;}
+ .d2-4046917272 .color-N7{color:#FFFFFF;}
+ .d2-4046917272 .color-B1{color:#0D32B2;}
+ .d2-4046917272 .color-B2{color:#0D32B2;}
+ .d2-4046917272 .color-B3{color:#E3E9FD;}
+ .d2-4046917272 .color-B4{color:#E3E9FD;}
+ .d2-4046917272 .color-B5{color:#EDF0FD;}
+ .d2-4046917272 .color-B6{color:#F7F8FE;}
+ .d2-4046917272 .color-AA2{color:#4A6FF3;}
+ .d2-4046917272 .color-AA4{color:#EDF0FD;}
+ .d2-4046917272 .color-AA5{color:#F7F8FE;}
+ .d2-4046917272 .color-AB4{color:#EDF0FD;}
+ .d2-4046917272 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>aa bb cc dd ff ii jj kk ll nn ss uu ww rm yy ad ee gg hh mm mm oo pp qq rr tt vv xx zz ab ac 1 2 3 4 5 6
diff --git a/e2etests/testdata/stable/large_arch/dagre/board.exp.json b/e2etests/testdata/stable/large_arch/dagre/board.exp.json
index 7cf99c5f2..cd06318bf 100644
--- a/e2etests/testdata/stable/large_arch/dagre/board.exp.json
+++ b/e2etests/testdata/stable/large_arch/dagre/board.exp.json
@@ -338,7 +338,7 @@
"x": 1427,
"y": 407
},
- "width": 475,
+ "width": 476,
"height": 541,
"opacity": 1,
"strokeDash": 0,
@@ -379,7 +379,7 @@
"x": 1449,
"y": 472
},
- "width": 348,
+ "width": 349,
"height": 130,
"opacity": 1,
"strokeDash": 0,
@@ -707,7 +707,7 @@
"x": 206,
"y": 41
},
- "width": 1201,
+ "width": 1202,
"height": 591,
"opacity": 1,
"strokeDash": 0,
@@ -748,7 +748,7 @@
"x": 471,
"y": 106
},
- "width": 402,
+ "width": 403,
"height": 496,
"opacity": 1,
"strokeDash": 0,
@@ -1388,7 +1388,7 @@
},
{
"x": 1731.5,
- "y": 596.1
+ "y": 596.0999755859375
},
{
"x": 1731.5,
@@ -1415,7 +1415,7 @@
"y": 692.5
},
{
- "x": 1730.3,
+ "x": 1730.300048828125,
"y": 762.5
},
{
@@ -1459,7 +1459,7 @@
},
{
"x": 1513.75,
- "y": 596.1
+ "y": 596.0999755859375
},
{
"x": 1513.75,
@@ -1487,7 +1487,7 @@
},
{
"x": 1513.75,
- "y": 766.1
+ "y": 766.0999755859375
},
{
"x": 1513.75,
@@ -1525,11 +1525,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 1813.6385542168675,
+ "x": 1813.637939453125,
"y": 1048
},
{
- "x": 1785.9277108433735,
+ "x": 1785.927001953125,
"y": 1008
},
{
@@ -1546,7 +1546,7 @@
},
{
"x": 1772,
- "y": 892.1
+ "y": 892.0999755859375
},
{
"x": 1744,
@@ -1585,11 +1585,11 @@
"route": [
{
"x": 1750,
- "y": 851.456155143339
+ "y": 851.4559936523438
},
{
- "x": 1845.8,
- "y": 888.6912310286677
+ "x": 1845.800048828125,
+ "y": 888.6909790039062
},
{
"x": 1869.75,
@@ -1648,7 +1648,7 @@
},
{
"x": 1836.5,
- "y": 892.1
+ "y": 892.0999755859375
},
{
"x": 1836.5,
@@ -1703,11 +1703,11 @@
"route": [
{
"x": 1693,
- "y": 855.7179487179487
+ "y": 855.7169799804688
},
{
- "x": 1622.2,
- "y": 889.5435897435898
+ "x": 1622.199951171875,
+ "y": 889.5430297851562
},
{
"x": 1604.5,
@@ -1762,11 +1762,11 @@
"route": [
{
"x": 1693,
- "y": 859.8865979381443
+ "y": 859.885986328125
},
{
- "x": 1638.2,
- "y": 890.3773195876289
+ "x": 1638.199951171875,
+ "y": 890.3770141601562
},
{
"x": 1624.5,
@@ -1820,12 +1820,12 @@
"labelPercentage": 0,
"route": [
{
- "x": 1736.4096385542168,
+ "x": 1736.4090576171875,
"y": 868.5
},
{
- "x": 1754.4819277108434,
- "y": 892.1
+ "x": 1754.48095703125,
+ "y": 892.0999755859375
},
{
"x": 1759,
@@ -1840,8 +1840,8 @@
"y": 938
},
{
- "x": 1743.6,
- "y": 1010.2
+ "x": 1743.5999755859375,
+ "y": 1010.2000122070312
},
{
"x": 1682,
@@ -1879,12 +1879,12 @@
"labelPercentage": 0,
"route": [
{
- "x": 1699.1355421686746,
+ "x": 1699.135009765625,
"y": 868.5
},
{
- "x": 1672.0271084337348,
- "y": 892.1
+ "x": 1672.0269775390625,
+ "y": 892.0999755859375
},
{
"x": 1665.25,
@@ -1985,11 +1985,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 629.4638554216867,
+ "x": 629.4630126953125,
"y": 254.5
},
{
- "x": 606.6927710843373,
+ "x": 606.6920166015625,
"y": 294.5
},
{
@@ -2017,7 +2017,7 @@
"y": 394.5
},
{
- "x": 595.6,
+ "x": 595.5999755859375,
"y": 464.5
},
{
@@ -2056,11 +2056,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 657.4939759036145,
+ "x": 657.4929809570312,
"y": 254.5
},
{
- "x": 668.6987951807229,
+ "x": 668.697998046875,
"y": 294.5
},
{
@@ -2128,11 +2128,11 @@
"route": [
{
"x": 431,
- "y": 220.1
+ "y": 220.10000610351562
},
{
- "x": 531.8,
- "y": 273.22
+ "x": 531.7999877929688,
+ "y": 273.2200012207031
},
{
"x": 557,
@@ -2160,7 +2160,7 @@
},
{
"x": 557,
- "y": 450.1
+ "y": 450.1000061035156
},
{
"x": 557,
@@ -2203,7 +2203,7 @@
},
{
"x": 781.75,
- "y": 283.2
+ "y": 283.20001220703125
},
{
"x": 781.75,
@@ -2230,8 +2230,8 @@
"y": 376.5
},
{
- "x": 807.95,
- "y": 450.3
+ "x": 807.9500122070312,
+ "y": 450.29998779296875
},
{
"x": 912.75,
@@ -2270,11 +2270,11 @@
"route": [
{
"x": 308,
- "y": 214.84729878721058
+ "y": 214.8470001220703
},
{
- "x": 464.6,
- "y": 272.1694597574421
+ "x": 464.6000061035156,
+ "y": 272.16900634765625
},
{
"x": 503.75,
@@ -2301,8 +2301,8 @@
"y": 376.5
},
{
- "x": 510.15,
- "y": 450.1
+ "x": 510.1499938964844,
+ "y": 450.1000061035156
},
{
"x": 535.75,
@@ -2345,7 +2345,7 @@
},
{
"x": 671.5,
- "y": 579.7
+ "y": 579.7000122070312
},
{
"x": 671.5,
@@ -2360,7 +2360,7 @@
"y": 622
},
{
- "x": 862.1,
+ "x": 862.0999755859375,
"y": 642
},
{
@@ -2368,12 +2368,12 @@
"y": 657
},
{
- "x": 1433.9,
+ "x": 1433.9000244140625,
"y": 672
},
{
- "x": 1638.3,
- "y": 747.9
+ "x": 1638.300048828125,
+ "y": 747.9000244140625
},
{
"x": 1693.5,
@@ -2411,12 +2411,12 @@
"labelPercentage": 0,
"route": [
{
- "x": 575.7861445783133,
+ "x": 575.7860107421875,
"y": 570.5
},
{
- "x": 598.5572289156627,
- "y": 579.7
+ "x": 598.5570068359375,
+ "y": 579.7000122070312
},
{
"x": 604.25,
@@ -2456,7 +2456,7 @@
},
{
"x": 604.25,
- "y": 748.6
+ "y": 748.5999755859375
},
{
"x": 604.25,
@@ -2464,11 +2464,11 @@
},
{
"x": 604.25,
- "y": 798.4
+ "y": 798.4000244140625
},
{
"x": 604.25,
- "y": 831.6
+ "y": 831.5999755859375
},
{
"x": 604.25,
@@ -2476,7 +2476,7 @@
},
{
"x": 604.25,
- "y": 881.4
+ "y": 881.4000244140625
},
{
"x": 604.25,
@@ -2491,12 +2491,12 @@
"y": 938
},
{
- "x": 1274.3,
- "y": 1013.6433297758805
+ "x": 1274.300048828125,
+ "y": 1013.6430053710938
},
{
"x": 1627.5,
- "y": 1076.2166488794023
+ "y": 1076.2159423828125
}
],
"isCurve": true,
@@ -2530,12 +2530,12 @@
"labelPercentage": 0,
"route": [
{
- "x": 543.7801204819277,
+ "x": 543.780029296875,
"y": 570.5
},
{
- "x": 527.7560240963855,
- "y": 579.7
+ "x": 527.7559814453125,
+ "y": 579.7000122070312
},
{
"x": 523.75,
diff --git a/e2etests/testdata/stable/large_arch/dagre/sketch.exp.svg b/e2etests/testdata/stable/large_arch/dagre/sketch.exp.svg
index 9b21979fd..0b4035169 100644
--- a/e2etests/testdata/stable/large_arch/dagre/sketch.exp.svg
+++ b/e2etests/testdata/stable/large_arch/dagre/sketch.exp.svg
@@ -1,17 +1,17 @@
-a b c d e f g h i q r j m n o s z aa bb ee ff gg k l p t u w x y cc dd v
-
+ .d2-4288919374 .fill-N1{fill:#0A0F25;}
+ .d2-4288919374 .fill-N2{fill:#676C7E;}
+ .d2-4288919374 .fill-N3{fill:#9499AB;}
+ .d2-4288919374 .fill-N4{fill:#CFD2DD;}
+ .d2-4288919374 .fill-N5{fill:#DEE1EB;}
+ .d2-4288919374 .fill-N6{fill:#EEF1F8;}
+ .d2-4288919374 .fill-N7{fill:#FFFFFF;}
+ .d2-4288919374 .fill-B1{fill:#0D32B2;}
+ .d2-4288919374 .fill-B2{fill:#0D32B2;}
+ .d2-4288919374 .fill-B3{fill:#E3E9FD;}
+ .d2-4288919374 .fill-B4{fill:#E3E9FD;}
+ .d2-4288919374 .fill-B5{fill:#EDF0FD;}
+ .d2-4288919374 .fill-B6{fill:#F7F8FE;}
+ .d2-4288919374 .fill-AA2{fill:#4A6FF3;}
+ .d2-4288919374 .fill-AA4{fill:#EDF0FD;}
+ .d2-4288919374 .fill-AA5{fill:#F7F8FE;}
+ .d2-4288919374 .fill-AB4{fill:#EDF0FD;}
+ .d2-4288919374 .fill-AB5{fill:#F7F8FE;}
+ .d2-4288919374 .stroke-N1{stroke:#0A0F25;}
+ .d2-4288919374 .stroke-N2{stroke:#676C7E;}
+ .d2-4288919374 .stroke-N3{stroke:#9499AB;}
+ .d2-4288919374 .stroke-N4{stroke:#CFD2DD;}
+ .d2-4288919374 .stroke-N5{stroke:#DEE1EB;}
+ .d2-4288919374 .stroke-N6{stroke:#EEF1F8;}
+ .d2-4288919374 .stroke-N7{stroke:#FFFFFF;}
+ .d2-4288919374 .stroke-B1{stroke:#0D32B2;}
+ .d2-4288919374 .stroke-B2{stroke:#0D32B2;}
+ .d2-4288919374 .stroke-B3{stroke:#E3E9FD;}
+ .d2-4288919374 .stroke-B4{stroke:#E3E9FD;}
+ .d2-4288919374 .stroke-B5{stroke:#EDF0FD;}
+ .d2-4288919374 .stroke-B6{stroke:#F7F8FE;}
+ .d2-4288919374 .stroke-AA2{stroke:#4A6FF3;}
+ .d2-4288919374 .stroke-AA4{stroke:#EDF0FD;}
+ .d2-4288919374 .stroke-AA5{stroke:#F7F8FE;}
+ .d2-4288919374 .stroke-AB4{stroke:#EDF0FD;}
+ .d2-4288919374 .stroke-AB5{stroke:#F7F8FE;}
+ .d2-4288919374 .background-color-N1{background-color:#0A0F25;}
+ .d2-4288919374 .background-color-N2{background-color:#676C7E;}
+ .d2-4288919374 .background-color-N3{background-color:#9499AB;}
+ .d2-4288919374 .background-color-N4{background-color:#CFD2DD;}
+ .d2-4288919374 .background-color-N5{background-color:#DEE1EB;}
+ .d2-4288919374 .background-color-N6{background-color:#EEF1F8;}
+ .d2-4288919374 .background-color-N7{background-color:#FFFFFF;}
+ .d2-4288919374 .background-color-B1{background-color:#0D32B2;}
+ .d2-4288919374 .background-color-B2{background-color:#0D32B2;}
+ .d2-4288919374 .background-color-B3{background-color:#E3E9FD;}
+ .d2-4288919374 .background-color-B4{background-color:#E3E9FD;}
+ .d2-4288919374 .background-color-B5{background-color:#EDF0FD;}
+ .d2-4288919374 .background-color-B6{background-color:#F7F8FE;}
+ .d2-4288919374 .background-color-AA2{background-color:#4A6FF3;}
+ .d2-4288919374 .background-color-AA4{background-color:#EDF0FD;}
+ .d2-4288919374 .background-color-AA5{background-color:#F7F8FE;}
+ .d2-4288919374 .background-color-AB4{background-color:#EDF0FD;}
+ .d2-4288919374 .background-color-AB5{background-color:#F7F8FE;}
+ .d2-4288919374 .color-N1{color:#0A0F25;}
+ .d2-4288919374 .color-N2{color:#676C7E;}
+ .d2-4288919374 .color-N3{color:#9499AB;}
+ .d2-4288919374 .color-N4{color:#CFD2DD;}
+ .d2-4288919374 .color-N5{color:#DEE1EB;}
+ .d2-4288919374 .color-N6{color:#EEF1F8;}
+ .d2-4288919374 .color-N7{color:#FFFFFF;}
+ .d2-4288919374 .color-B1{color:#0D32B2;}
+ .d2-4288919374 .color-B2{color:#0D32B2;}
+ .d2-4288919374 .color-B3{color:#E3E9FD;}
+ .d2-4288919374 .color-B4{color:#E3E9FD;}
+ .d2-4288919374 .color-B5{color:#EDF0FD;}
+ .d2-4288919374 .color-B6{color:#F7F8FE;}
+ .d2-4288919374 .color-AA2{color:#4A6FF3;}
+ .d2-4288919374 .color-AA4{color:#EDF0FD;}
+ .d2-4288919374 .color-AA5{color:#F7F8FE;}
+ .d2-4288919374 .color-AB4{color:#EDF0FD;}
+ .d2-4288919374 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>a b c d e f g h i q r j m n o s z aa bb ee ff gg k l p t u w x y cc dd v
+
\ No newline at end of file
diff --git a/e2etests/testdata/stable/large_arch/elk/board.exp.json b/e2etests/testdata/stable/large_arch/elk/board.exp.json
index be693bc3c..47b3df074 100644
--- a/e2etests/testdata/stable/large_arch/elk/board.exp.json
+++ b/e2etests/testdata/stable/large_arch/elk/board.exp.json
@@ -707,7 +707,7 @@
"x": 158,
"y": 12
},
- "width": 806,
+ "width": 807,
"height": 909,
"opacity": 1,
"strokeDash": 0,
@@ -748,7 +748,7 @@
"x": 208,
"y": 313
},
- "width": 543,
+ "width": 544,
"height": 417,
"opacity": 1,
"strokeDash": 0,
@@ -1521,11 +1521,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 669.4166666666666,
+ "x": 669.416015625,
"y": 1493.625
},
{
- "x": 669.4166666666666,
+ "x": 669.416015625,
"y": 1678
},
{
@@ -1613,11 +1613,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 646.1666666666666,
+ "x": 646.166015625,
"y": 1493.625
},
{
- "x": 646.1666666666666,
+ "x": 646.166015625,
"y": 1768
}
],
@@ -1659,11 +1659,11 @@
"y": 1728
},
{
- "x": 572.6666666666666,
+ "x": 572.666015625,
"y": 1728
},
{
- "x": 572.6666666666666,
+ "x": 572.666015625,
"y": 1768
}
],
@@ -1697,19 +1697,19 @@
"labelPercentage": 0,
"route": [
{
- "x": 536.0833333333334,
+ "x": 536.0830078125,
"y": 1493.625
},
{
- "x": 536.0833333333333,
+ "x": 536.0830078125,
"y": 1628
},
{
- "x": 297.16666666666663,
+ "x": 297.1659851074219,
"y": 1628
},
{
- "x": 297.16666666666663,
+ "x": 297.1659851074219,
"y": 1768
}
],
@@ -1743,19 +1743,19 @@
"labelPercentage": 0,
"route": [
{
- "x": 569.4166666666666,
+ "x": 569.416015625,
"y": 1493.625
},
{
- "x": 569.4166666666666,
+ "x": 569.416015625,
"y": 1678
},
{
- "x": 500.16666666666663,
+ "x": 500.1659851074219,
"y": 1678
},
{
- "x": 500.16666666666663,
+ "x": 500.1659851074219,
"y": 1768
}
],
@@ -1789,11 +1789,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 572.6666666666666,
+ "x": 572.666015625,
"y": 1834
},
{
- "x": 572.6666666666666,
+ "x": 572.666015625,
"y": 1904
}
],
@@ -1827,11 +1827,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 574.3333333333333,
+ "x": 574.3330078125,
"y": 429
},
{
- "x": 574.3333333333333,
+ "x": 574.3330078125,
"y": 469
},
{
@@ -1911,11 +1911,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 882.6666666666666,
+ "x": 882.666015625,
"y": 228
},
{
- "x": 882.6666666666666,
+ "x": 882.666015625,
"y": 268
},
{
@@ -2083,7 +2083,7 @@
"y": 617
},
{
- "x": 270.4999999999999,
+ "x": 270.4989929199219,
"y": 1768
}
],
@@ -2155,11 +2155,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 800.1666666666666,
+ "x": 800.166015625,
"y": 228
},
{
- "x": 800.1666666666666,
+ "x": 800.166015625,
"y": 313
}
],
diff --git a/e2etests/testdata/stable/large_arch/elk/sketch.exp.svg b/e2etests/testdata/stable/large_arch/elk/sketch.exp.svg
index 6acaaca67..96a8d92de 100644
--- a/e2etests/testdata/stable/large_arch/elk/sketch.exp.svg
+++ b/e2etests/testdata/stable/large_arch/elk/sketch.exp.svg
@@ -1,17 +1,17 @@
-a b c d e f g h i q r j m n o s z aa bb ee ff gg k l p t u w x y cc dd v
+ .d2-1377035100 .fill-N1{fill:#0A0F25;}
+ .d2-1377035100 .fill-N2{fill:#676C7E;}
+ .d2-1377035100 .fill-N3{fill:#9499AB;}
+ .d2-1377035100 .fill-N4{fill:#CFD2DD;}
+ .d2-1377035100 .fill-N5{fill:#DEE1EB;}
+ .d2-1377035100 .fill-N6{fill:#EEF1F8;}
+ .d2-1377035100 .fill-N7{fill:#FFFFFF;}
+ .d2-1377035100 .fill-B1{fill:#0D32B2;}
+ .d2-1377035100 .fill-B2{fill:#0D32B2;}
+ .d2-1377035100 .fill-B3{fill:#E3E9FD;}
+ .d2-1377035100 .fill-B4{fill:#E3E9FD;}
+ .d2-1377035100 .fill-B5{fill:#EDF0FD;}
+ .d2-1377035100 .fill-B6{fill:#F7F8FE;}
+ .d2-1377035100 .fill-AA2{fill:#4A6FF3;}
+ .d2-1377035100 .fill-AA4{fill:#EDF0FD;}
+ .d2-1377035100 .fill-AA5{fill:#F7F8FE;}
+ .d2-1377035100 .fill-AB4{fill:#EDF0FD;}
+ .d2-1377035100 .fill-AB5{fill:#F7F8FE;}
+ .d2-1377035100 .stroke-N1{stroke:#0A0F25;}
+ .d2-1377035100 .stroke-N2{stroke:#676C7E;}
+ .d2-1377035100 .stroke-N3{stroke:#9499AB;}
+ .d2-1377035100 .stroke-N4{stroke:#CFD2DD;}
+ .d2-1377035100 .stroke-N5{stroke:#DEE1EB;}
+ .d2-1377035100 .stroke-N6{stroke:#EEF1F8;}
+ .d2-1377035100 .stroke-N7{stroke:#FFFFFF;}
+ .d2-1377035100 .stroke-B1{stroke:#0D32B2;}
+ .d2-1377035100 .stroke-B2{stroke:#0D32B2;}
+ .d2-1377035100 .stroke-B3{stroke:#E3E9FD;}
+ .d2-1377035100 .stroke-B4{stroke:#E3E9FD;}
+ .d2-1377035100 .stroke-B5{stroke:#EDF0FD;}
+ .d2-1377035100 .stroke-B6{stroke:#F7F8FE;}
+ .d2-1377035100 .stroke-AA2{stroke:#4A6FF3;}
+ .d2-1377035100 .stroke-AA4{stroke:#EDF0FD;}
+ .d2-1377035100 .stroke-AA5{stroke:#F7F8FE;}
+ .d2-1377035100 .stroke-AB4{stroke:#EDF0FD;}
+ .d2-1377035100 .stroke-AB5{stroke:#F7F8FE;}
+ .d2-1377035100 .background-color-N1{background-color:#0A0F25;}
+ .d2-1377035100 .background-color-N2{background-color:#676C7E;}
+ .d2-1377035100 .background-color-N3{background-color:#9499AB;}
+ .d2-1377035100 .background-color-N4{background-color:#CFD2DD;}
+ .d2-1377035100 .background-color-N5{background-color:#DEE1EB;}
+ .d2-1377035100 .background-color-N6{background-color:#EEF1F8;}
+ .d2-1377035100 .background-color-N7{background-color:#FFFFFF;}
+ .d2-1377035100 .background-color-B1{background-color:#0D32B2;}
+ .d2-1377035100 .background-color-B2{background-color:#0D32B2;}
+ .d2-1377035100 .background-color-B3{background-color:#E3E9FD;}
+ .d2-1377035100 .background-color-B4{background-color:#E3E9FD;}
+ .d2-1377035100 .background-color-B5{background-color:#EDF0FD;}
+ .d2-1377035100 .background-color-B6{background-color:#F7F8FE;}
+ .d2-1377035100 .background-color-AA2{background-color:#4A6FF3;}
+ .d2-1377035100 .background-color-AA4{background-color:#EDF0FD;}
+ .d2-1377035100 .background-color-AA5{background-color:#F7F8FE;}
+ .d2-1377035100 .background-color-AB4{background-color:#EDF0FD;}
+ .d2-1377035100 .background-color-AB5{background-color:#F7F8FE;}
+ .d2-1377035100 .color-N1{color:#0A0F25;}
+ .d2-1377035100 .color-N2{color:#676C7E;}
+ .d2-1377035100 .color-N3{color:#9499AB;}
+ .d2-1377035100 .color-N4{color:#CFD2DD;}
+ .d2-1377035100 .color-N5{color:#DEE1EB;}
+ .d2-1377035100 .color-N6{color:#EEF1F8;}
+ .d2-1377035100 .color-N7{color:#FFFFFF;}
+ .d2-1377035100 .color-B1{color:#0D32B2;}
+ .d2-1377035100 .color-B2{color:#0D32B2;}
+ .d2-1377035100 .color-B3{color:#E3E9FD;}
+ .d2-1377035100 .color-B4{color:#E3E9FD;}
+ .d2-1377035100 .color-B5{color:#EDF0FD;}
+ .d2-1377035100 .color-B6{color:#F7F8FE;}
+ .d2-1377035100 .color-AA2{color:#4A6FF3;}
+ .d2-1377035100 .color-AA4{color:#EDF0FD;}
+ .d2-1377035100 .color-AA5{color:#F7F8FE;}
+ .d2-1377035100 .color-AB4{color:#EDF0FD;}
+ .d2-1377035100 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>a b c d e f g h i q r j m n o s z aa bb ee ff gg k l p t u w x y cc dd v
\ No newline at end of file
diff --git a/e2etests/testdata/stable/latex/dagre/board.exp.json b/e2etests/testdata/stable/latex/dagre/board.exp.json
index 560a32067..5760e319a 100644
--- a/e2etests/testdata/stable/latex/dagre/board.exp.json
+++ b/e2etests/testdata/stable/latex/dagre/board.exp.json
@@ -273,11 +273,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 284.87417218543044,
+ "x": 284.8739929199219,
"y": 51
},
{
- "x": 209.7748344370861,
+ "x": 209.7740020751953,
"y": 91
},
{
@@ -320,16 +320,16 @@
"labelPercentage": 0,
"route": [
{
- "x": 380.62582781456956,
+ "x": 380.625,
"y": 51
},
{
- "x": 455.7251655629139,
+ "x": 455.7250061035156,
"y": 91
},
{
"x": 474.5,
- "y": 119.3
+ "y": 119.30000305175781
},
{
"x": 474.5,
@@ -375,12 +375,12 @@
"y": 292
},
{
- "x": 232.3,
- "y": 314.0913580246914
+ "x": 232.3000030517578,
+ "y": 314.09100341796875
},
{
"x": 397.5,
- "y": 362.4567901234568
+ "y": 362.45599365234375
}
],
"isCurve": true,
@@ -419,7 +419,7 @@
},
{
"x": 474.5,
- "y": 283.9
+ "y": 283.8999938964844
},
{
"x": 474.5,
@@ -466,10 +466,10 @@
},
{
"x": 610,
- "y": 288.7
+ "y": 288.70001220703125
},
{
- "x": 593.6,
+ "x": 593.5999755859375,
"y": 312
},
{
@@ -513,11 +513,11 @@
},
{
"x": 474.5,
- "y": 466.4
+ "y": 466.3999938964844
},
{
"x": 474.5,
- "y": 490.7
+ "y": 490.70001220703125
},
{
"x": 474.5,
diff --git a/e2etests/testdata/stable/latex/dagre/sketch.exp.svg b/e2etests/testdata/stable/latex/dagre/sketch.exp.svg
index 5359ae483..dc1a3d0dc 100644
--- a/e2etests/testdata/stable/latex/dagre/sketch.exp.svg
+++ b/e2etests/testdata/stable/latex/dagre/sketch.exp.svg
@@ -1,17 +1,17 @@
-mixed together sugar solution we get
+mixed together sugar solution we get
\ No newline at end of file
diff --git a/e2etests/testdata/stable/latex/elk/board.exp.json b/e2etests/testdata/stable/latex/elk/board.exp.json
index c1c469de6..ba49c3482 100644
--- a/e2etests/testdata/stable/latex/elk/board.exp.json
+++ b/e2etests/testdata/stable/latex/elk/board.exp.json
@@ -273,11 +273,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 294.9166666666667,
+ "x": 294.9159851074219,
"y": 63
},
{
- "x": 294.9166666666667,
+ "x": 294.9159851074219,
"y": 143
}
],
@@ -311,11 +311,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 354.5833333333333,
+ "x": 354.5830078125,
"y": 63
},
{
- "x": 354.5833333333333,
+ "x": 354.5830078125,
"y": 103
},
{
diff --git a/e2etests/testdata/stable/latex/elk/sketch.exp.svg b/e2etests/testdata/stable/latex/elk/sketch.exp.svg
index adbcd0778..a8c1ccd3a 100644
--- a/e2etests/testdata/stable/latex/elk/sketch.exp.svg
+++ b/e2etests/testdata/stable/latex/elk/sketch.exp.svg
@@ -1,17 +1,17 @@
-mixed together sugar solution we get
+mixed together sugar solution we get
\ No newline at end of file
diff --git a/e2etests/testdata/stable/legend_with_near_key/dagre/sketch.exp.svg b/e2etests/testdata/stable/legend_with_near_key/dagre/sketch.exp.svg
index bae462f45..e9c45def7 100644
--- a/e2etests/testdata/stable/legend_with_near_key/dagre/sketch.exp.svg
+++ b/e2etests/testdata/stable/legend_with_near_key/dagre/sketch.exp.svg
@@ -1,17 +1,17 @@
-x y hi
+ .d2-2485084068 .fill-N1{fill:#0A0F25;}
+ .d2-2485084068 .fill-N2{fill:#676C7E;}
+ .d2-2485084068 .fill-N3{fill:#9499AB;}
+ .d2-2485084068 .fill-N4{fill:#CFD2DD;}
+ .d2-2485084068 .fill-N5{fill:#DEE1EB;}
+ .d2-2485084068 .fill-N6{fill:#EEF1F8;}
+ .d2-2485084068 .fill-N7{fill:#FFFFFF;}
+ .d2-2485084068 .fill-B1{fill:#0D32B2;}
+ .d2-2485084068 .fill-B2{fill:#0D32B2;}
+ .d2-2485084068 .fill-B3{fill:#E3E9FD;}
+ .d2-2485084068 .fill-B4{fill:#E3E9FD;}
+ .d2-2485084068 .fill-B5{fill:#EDF0FD;}
+ .d2-2485084068 .fill-B6{fill:#F7F8FE;}
+ .d2-2485084068 .fill-AA2{fill:#4A6FF3;}
+ .d2-2485084068 .fill-AA4{fill:#EDF0FD;}
+ .d2-2485084068 .fill-AA5{fill:#F7F8FE;}
+ .d2-2485084068 .fill-AB4{fill:#EDF0FD;}
+ .d2-2485084068 .fill-AB5{fill:#F7F8FE;}
+ .d2-2485084068 .stroke-N1{stroke:#0A0F25;}
+ .d2-2485084068 .stroke-N2{stroke:#676C7E;}
+ .d2-2485084068 .stroke-N3{stroke:#9499AB;}
+ .d2-2485084068 .stroke-N4{stroke:#CFD2DD;}
+ .d2-2485084068 .stroke-N5{stroke:#DEE1EB;}
+ .d2-2485084068 .stroke-N6{stroke:#EEF1F8;}
+ .d2-2485084068 .stroke-N7{stroke:#FFFFFF;}
+ .d2-2485084068 .stroke-B1{stroke:#0D32B2;}
+ .d2-2485084068 .stroke-B2{stroke:#0D32B2;}
+ .d2-2485084068 .stroke-B3{stroke:#E3E9FD;}
+ .d2-2485084068 .stroke-B4{stroke:#E3E9FD;}
+ .d2-2485084068 .stroke-B5{stroke:#EDF0FD;}
+ .d2-2485084068 .stroke-B6{stroke:#F7F8FE;}
+ .d2-2485084068 .stroke-AA2{stroke:#4A6FF3;}
+ .d2-2485084068 .stroke-AA4{stroke:#EDF0FD;}
+ .d2-2485084068 .stroke-AA5{stroke:#F7F8FE;}
+ .d2-2485084068 .stroke-AB4{stroke:#EDF0FD;}
+ .d2-2485084068 .stroke-AB5{stroke:#F7F8FE;}
+ .d2-2485084068 .background-color-N1{background-color:#0A0F25;}
+ .d2-2485084068 .background-color-N2{background-color:#676C7E;}
+ .d2-2485084068 .background-color-N3{background-color:#9499AB;}
+ .d2-2485084068 .background-color-N4{background-color:#CFD2DD;}
+ .d2-2485084068 .background-color-N5{background-color:#DEE1EB;}
+ .d2-2485084068 .background-color-N6{background-color:#EEF1F8;}
+ .d2-2485084068 .background-color-N7{background-color:#FFFFFF;}
+ .d2-2485084068 .background-color-B1{background-color:#0D32B2;}
+ .d2-2485084068 .background-color-B2{background-color:#0D32B2;}
+ .d2-2485084068 .background-color-B3{background-color:#E3E9FD;}
+ .d2-2485084068 .background-color-B4{background-color:#E3E9FD;}
+ .d2-2485084068 .background-color-B5{background-color:#EDF0FD;}
+ .d2-2485084068 .background-color-B6{background-color:#F7F8FE;}
+ .d2-2485084068 .background-color-AA2{background-color:#4A6FF3;}
+ .d2-2485084068 .background-color-AA4{background-color:#EDF0FD;}
+ .d2-2485084068 .background-color-AA5{background-color:#F7F8FE;}
+ .d2-2485084068 .background-color-AB4{background-color:#EDF0FD;}
+ .d2-2485084068 .background-color-AB5{background-color:#F7F8FE;}
+ .d2-2485084068 .color-N1{color:#0A0F25;}
+ .d2-2485084068 .color-N2{color:#676C7E;}
+ .d2-2485084068 .color-N3{color:#9499AB;}
+ .d2-2485084068 .color-N4{color:#CFD2DD;}
+ .d2-2485084068 .color-N5{color:#DEE1EB;}
+ .d2-2485084068 .color-N6{color:#EEF1F8;}
+ .d2-2485084068 .color-N7{color:#FFFFFF;}
+ .d2-2485084068 .color-B1{color:#0D32B2;}
+ .d2-2485084068 .color-B2{color:#0D32B2;}
+ .d2-2485084068 .color-B3{color:#E3E9FD;}
+ .d2-2485084068 .color-B4{color:#E3E9FD;}
+ .d2-2485084068 .color-B5{color:#EDF0FD;}
+ .d2-2485084068 .color-B6{color:#F7F8FE;}
+ .d2-2485084068 .color-AA2{color:#4A6FF3;}
+ .d2-2485084068 .color-AA4{color:#EDF0FD;}
+ .d2-2485084068 .color-AA5{color:#F7F8FE;}
+ .d2-2485084068 .color-AB4{color:#EDF0FD;}
+ .d2-2485084068 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>x y hi
\ No newline at end of file
diff --git a/e2etests/testdata/stable/mono-edge/elk/sketch.exp.svg b/e2etests/testdata/stable/mono-edge/elk/sketch.exp.svg
index 9a23b3269..9e1231aff 100644
--- a/e2etests/testdata/stable/mono-edge/elk/sketch.exp.svg
+++ b/e2etests/testdata/stable/mono-edge/elk/sketch.exp.svg
@@ -1,24 +1,24 @@
-SATELLITES TRANSMITTER SEND SEND SEND
-
-
-
-
+ .d2-1251921849 .fill-N1{fill:#0A0F25;}
+ .d2-1251921849 .fill-N2{fill:#676C7E;}
+ .d2-1251921849 .fill-N3{fill:#9499AB;}
+ .d2-1251921849 .fill-N4{fill:#CFD2DD;}
+ .d2-1251921849 .fill-N5{fill:#DEE1EB;}
+ .d2-1251921849 .fill-N6{fill:#EEF1F8;}
+ .d2-1251921849 .fill-N7{fill:#FFFFFF;}
+ .d2-1251921849 .fill-B1{fill:#0D32B2;}
+ .d2-1251921849 .fill-B2{fill:#0D32B2;}
+ .d2-1251921849 .fill-B3{fill:#E3E9FD;}
+ .d2-1251921849 .fill-B4{fill:#E3E9FD;}
+ .d2-1251921849 .fill-B5{fill:#EDF0FD;}
+ .d2-1251921849 .fill-B6{fill:#F7F8FE;}
+ .d2-1251921849 .fill-AA2{fill:#4A6FF3;}
+ .d2-1251921849 .fill-AA4{fill:#EDF0FD;}
+ .d2-1251921849 .fill-AA5{fill:#F7F8FE;}
+ .d2-1251921849 .fill-AB4{fill:#EDF0FD;}
+ .d2-1251921849 .fill-AB5{fill:#F7F8FE;}
+ .d2-1251921849 .stroke-N1{stroke:#0A0F25;}
+ .d2-1251921849 .stroke-N2{stroke:#676C7E;}
+ .d2-1251921849 .stroke-N3{stroke:#9499AB;}
+ .d2-1251921849 .stroke-N4{stroke:#CFD2DD;}
+ .d2-1251921849 .stroke-N5{stroke:#DEE1EB;}
+ .d2-1251921849 .stroke-N6{stroke:#EEF1F8;}
+ .d2-1251921849 .stroke-N7{stroke:#FFFFFF;}
+ .d2-1251921849 .stroke-B1{stroke:#0D32B2;}
+ .d2-1251921849 .stroke-B2{stroke:#0D32B2;}
+ .d2-1251921849 .stroke-B3{stroke:#E3E9FD;}
+ .d2-1251921849 .stroke-B4{stroke:#E3E9FD;}
+ .d2-1251921849 .stroke-B5{stroke:#EDF0FD;}
+ .d2-1251921849 .stroke-B6{stroke:#F7F8FE;}
+ .d2-1251921849 .stroke-AA2{stroke:#4A6FF3;}
+ .d2-1251921849 .stroke-AA4{stroke:#EDF0FD;}
+ .d2-1251921849 .stroke-AA5{stroke:#F7F8FE;}
+ .d2-1251921849 .stroke-AB4{stroke:#EDF0FD;}
+ .d2-1251921849 .stroke-AB5{stroke:#F7F8FE;}
+ .d2-1251921849 .background-color-N1{background-color:#0A0F25;}
+ .d2-1251921849 .background-color-N2{background-color:#676C7E;}
+ .d2-1251921849 .background-color-N3{background-color:#9499AB;}
+ .d2-1251921849 .background-color-N4{background-color:#CFD2DD;}
+ .d2-1251921849 .background-color-N5{background-color:#DEE1EB;}
+ .d2-1251921849 .background-color-N6{background-color:#EEF1F8;}
+ .d2-1251921849 .background-color-N7{background-color:#FFFFFF;}
+ .d2-1251921849 .background-color-B1{background-color:#0D32B2;}
+ .d2-1251921849 .background-color-B2{background-color:#0D32B2;}
+ .d2-1251921849 .background-color-B3{background-color:#E3E9FD;}
+ .d2-1251921849 .background-color-B4{background-color:#E3E9FD;}
+ .d2-1251921849 .background-color-B5{background-color:#EDF0FD;}
+ .d2-1251921849 .background-color-B6{background-color:#F7F8FE;}
+ .d2-1251921849 .background-color-AA2{background-color:#4A6FF3;}
+ .d2-1251921849 .background-color-AA4{background-color:#EDF0FD;}
+ .d2-1251921849 .background-color-AA5{background-color:#F7F8FE;}
+ .d2-1251921849 .background-color-AB4{background-color:#EDF0FD;}
+ .d2-1251921849 .background-color-AB5{background-color:#F7F8FE;}
+ .d2-1251921849 .color-N1{color:#0A0F25;}
+ .d2-1251921849 .color-N2{color:#676C7E;}
+ .d2-1251921849 .color-N3{color:#9499AB;}
+ .d2-1251921849 .color-N4{color:#CFD2DD;}
+ .d2-1251921849 .color-N5{color:#DEE1EB;}
+ .d2-1251921849 .color-N6{color:#EEF1F8;}
+ .d2-1251921849 .color-N7{color:#FFFFFF;}
+ .d2-1251921849 .color-B1{color:#0D32B2;}
+ .d2-1251921849 .color-B2{color:#0D32B2;}
+ .d2-1251921849 .color-B3{color:#E3E9FD;}
+ .d2-1251921849 .color-B4{color:#E3E9FD;}
+ .d2-1251921849 .color-B5{color:#EDF0FD;}
+ .d2-1251921849 .color-B6{color:#F7F8FE;}
+ .d2-1251921849 .color-AA2{color:#4A6FF3;}
+ .d2-1251921849 .color-AA4{color:#EDF0FD;}
+ .d2-1251921849 .color-AA5{color:#F7F8FE;}
+ .d2-1251921849 .color-AB4{color:#EDF0FD;}
+ .d2-1251921849 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>SATELLITES TRANSMITTER SEND SEND SEND
+
+
+
+
\ No newline at end of file
diff --git a/e2etests/testdata/stable/mono-font/elk/board.exp.json b/e2etests/testdata/stable/mono-font/elk/board.exp.json
index cff3bedec..80cca418e 100644
--- a/e2etests/testdata/stable/mono-font/elk/board.exp.json
+++ b/e2etests/testdata/stable/mono-font/elk/board.exp.json
@@ -8,7 +8,7 @@
"type": "stored_data",
"pos": {
"x": 12,
- "y": 12
+ "y": 22
},
"width": 161,
"height": 66,
@@ -48,8 +48,8 @@
"id": "transmitter",
"type": "rectangle",
"pos": {
- "x": 17,
- "y": 259
+ "x": 22,
+ "y": 269
},
"width": 151,
"height": 66,
@@ -112,12 +112,12 @@
"labelPercentage": 0,
"route": [
{
- "x": 43,
- "y": 78
+ "x": 48,
+ "y": 88
},
{
- "x": 43.5,
- "y": 259
+ "x": 48.5,
+ "y": 269
}
],
"animated": false,
@@ -150,12 +150,12 @@
"labelPercentage": 0,
"route": [
{
- "x": 92,
- "y": 78
+ "x": 97,
+ "y": 88
},
{
- "x": 92.5,
- "y": 259
+ "x": 97.5,
+ "y": 269
}
],
"animated": false,
@@ -188,12 +188,12 @@
"labelPercentage": 0,
"route": [
{
- "x": 141,
- "y": 78
+ "x": 146,
+ "y": 88
},
{
- "x": 141.5,
- "y": 259
+ "x": 146.5,
+ "y": 269
}
],
"animated": false,
diff --git a/e2etests/testdata/stable/mono-font/elk/sketch.exp.svg b/e2etests/testdata/stable/mono-font/elk/sketch.exp.svg
index 6792ee124..48ae29040 100644
--- a/e2etests/testdata/stable/mono-font/elk/sketch.exp.svg
+++ b/e2etests/testdata/stable/mono-font/elk/sketch.exp.svg
@@ -1,17 +1,17 @@
-SATELLITES TRANSMITTER SEND SEND SEND
-
-
-
-
+ .d2-2858845804 .fill-N1{fill:#0A0F25;}
+ .d2-2858845804 .fill-N2{fill:#676C7E;}
+ .d2-2858845804 .fill-N3{fill:#9499AB;}
+ .d2-2858845804 .fill-N4{fill:#CFD2DD;}
+ .d2-2858845804 .fill-N5{fill:#DEE1EB;}
+ .d2-2858845804 .fill-N6{fill:#EEF1F8;}
+ .d2-2858845804 .fill-N7{fill:#FFFFFF;}
+ .d2-2858845804 .fill-B1{fill:#0D32B2;}
+ .d2-2858845804 .fill-B2{fill:#0D32B2;}
+ .d2-2858845804 .fill-B3{fill:#E3E9FD;}
+ .d2-2858845804 .fill-B4{fill:#E3E9FD;}
+ .d2-2858845804 .fill-B5{fill:#EDF0FD;}
+ .d2-2858845804 .fill-B6{fill:#F7F8FE;}
+ .d2-2858845804 .fill-AA2{fill:#4A6FF3;}
+ .d2-2858845804 .fill-AA4{fill:#EDF0FD;}
+ .d2-2858845804 .fill-AA5{fill:#F7F8FE;}
+ .d2-2858845804 .fill-AB4{fill:#EDF0FD;}
+ .d2-2858845804 .fill-AB5{fill:#F7F8FE;}
+ .d2-2858845804 .stroke-N1{stroke:#0A0F25;}
+ .d2-2858845804 .stroke-N2{stroke:#676C7E;}
+ .d2-2858845804 .stroke-N3{stroke:#9499AB;}
+ .d2-2858845804 .stroke-N4{stroke:#CFD2DD;}
+ .d2-2858845804 .stroke-N5{stroke:#DEE1EB;}
+ .d2-2858845804 .stroke-N6{stroke:#EEF1F8;}
+ .d2-2858845804 .stroke-N7{stroke:#FFFFFF;}
+ .d2-2858845804 .stroke-B1{stroke:#0D32B2;}
+ .d2-2858845804 .stroke-B2{stroke:#0D32B2;}
+ .d2-2858845804 .stroke-B3{stroke:#E3E9FD;}
+ .d2-2858845804 .stroke-B4{stroke:#E3E9FD;}
+ .d2-2858845804 .stroke-B5{stroke:#EDF0FD;}
+ .d2-2858845804 .stroke-B6{stroke:#F7F8FE;}
+ .d2-2858845804 .stroke-AA2{stroke:#4A6FF3;}
+ .d2-2858845804 .stroke-AA4{stroke:#EDF0FD;}
+ .d2-2858845804 .stroke-AA5{stroke:#F7F8FE;}
+ .d2-2858845804 .stroke-AB4{stroke:#EDF0FD;}
+ .d2-2858845804 .stroke-AB5{stroke:#F7F8FE;}
+ .d2-2858845804 .background-color-N1{background-color:#0A0F25;}
+ .d2-2858845804 .background-color-N2{background-color:#676C7E;}
+ .d2-2858845804 .background-color-N3{background-color:#9499AB;}
+ .d2-2858845804 .background-color-N4{background-color:#CFD2DD;}
+ .d2-2858845804 .background-color-N5{background-color:#DEE1EB;}
+ .d2-2858845804 .background-color-N6{background-color:#EEF1F8;}
+ .d2-2858845804 .background-color-N7{background-color:#FFFFFF;}
+ .d2-2858845804 .background-color-B1{background-color:#0D32B2;}
+ .d2-2858845804 .background-color-B2{background-color:#0D32B2;}
+ .d2-2858845804 .background-color-B3{background-color:#E3E9FD;}
+ .d2-2858845804 .background-color-B4{background-color:#E3E9FD;}
+ .d2-2858845804 .background-color-B5{background-color:#EDF0FD;}
+ .d2-2858845804 .background-color-B6{background-color:#F7F8FE;}
+ .d2-2858845804 .background-color-AA2{background-color:#4A6FF3;}
+ .d2-2858845804 .background-color-AA4{background-color:#EDF0FD;}
+ .d2-2858845804 .background-color-AA5{background-color:#F7F8FE;}
+ .d2-2858845804 .background-color-AB4{background-color:#EDF0FD;}
+ .d2-2858845804 .background-color-AB5{background-color:#F7F8FE;}
+ .d2-2858845804 .color-N1{color:#0A0F25;}
+ .d2-2858845804 .color-N2{color:#676C7E;}
+ .d2-2858845804 .color-N3{color:#9499AB;}
+ .d2-2858845804 .color-N4{color:#CFD2DD;}
+ .d2-2858845804 .color-N5{color:#DEE1EB;}
+ .d2-2858845804 .color-N6{color:#EEF1F8;}
+ .d2-2858845804 .color-N7{color:#FFFFFF;}
+ .d2-2858845804 .color-B1{color:#0D32B2;}
+ .d2-2858845804 .color-B2{color:#0D32B2;}
+ .d2-2858845804 .color-B3{color:#E3E9FD;}
+ .d2-2858845804 .color-B4{color:#E3E9FD;}
+ .d2-2858845804 .color-B5{color:#EDF0FD;}
+ .d2-2858845804 .color-B6{color:#F7F8FE;}
+ .d2-2858845804 .color-AA2{color:#4A6FF3;}
+ .d2-2858845804 .color-AA4{color:#EDF0FD;}
+ .d2-2858845804 .color-AA5{color:#F7F8FE;}
+ .d2-2858845804 .color-AB4{color:#EDF0FD;}
+ .d2-2858845804 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>SATELLITES TRANSMITTER SEND SEND SEND
+
+
+
+
\ No newline at end of file
diff --git a/e2etests/testdata/stable/multiline_text/dagre/sketch.exp.svg b/e2etests/testdata/stable/multiline_text/dagre/sketch.exp.svg
index 2df49ff96..f0c651bab 100644
--- a/e2etests/testdata/stable/multiline_text/dagre/sketch.exp.svg
+++ b/e2etests/testdata/stable/multiline_text/dagre/sketch.exp.svg
@@ -1,10 +1,10 @@
-outer start end volume group volume definition volume
+
+
+
\ No newline at end of file
diff --git a/e2etests/testdata/stable/multiple_box_selection/elk/board.exp.json b/e2etests/testdata/stable/multiple_box_selection/elk/board.exp.json
new file mode 100644
index 000000000..f9f1eb196
--- /dev/null
+++ b/e2etests/testdata/stable/multiple_box_selection/elk/board.exp.json
@@ -0,0 +1,371 @@
+{
+ "name": "",
+ "isFolderOnly": false,
+ "fontFamily": "SourceSansPro",
+ "shapes": [
+ {
+ "id": "outer",
+ "type": "rectangle",
+ "pos": {
+ "x": 12,
+ "y": 153
+ },
+ "width": 408,
+ "height": 396,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B4",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "outer",
+ "fontSize": 28,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 63,
+ "labelHeight": 36,
+ "labelPosition": "INSIDE_TOP_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "outer.vg",
+ "type": "rectangle",
+ "pos": {
+ "x": 62,
+ "y": 208
+ },
+ "width": 308,
+ "height": 286,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "volume group",
+ "fontSize": 24,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 140,
+ "labelHeight": 31,
+ "labelPosition": "INSIDE_TOP_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "outer.vg.vd",
+ "type": "rectangle",
+ "pos": {
+ "x": 112,
+ "y": 273
+ },
+ "width": 208,
+ "height": 176,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B6",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": true,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "volume definition",
+ "fontSize": 20,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 147,
+ "labelHeight": 26,
+ "labelPosition": "INSIDE_TOP_CENTER",
+ "zIndex": 0,
+ "level": 3
+ },
+ {
+ "id": "outer.vg.vd.volume",
+ "type": "rectangle",
+ "pos": {
+ "x": 162,
+ "y": 333
+ },
+ "width": 98,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 3,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "N7",
+ "stroke": "B2",
+ "shadow": false,
+ "3d": false,
+ "multiple": true,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "volume",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 53,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 4
+ },
+ {
+ "id": "start",
+ "type": "rectangle",
+ "pos": {
+ "x": 176,
+ "y": 12
+ },
+ "width": 80,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B6",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "start",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 35,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "end",
+ "type": "rectangle",
+ "pos": {
+ "x": 180,
+ "y": 624
+ },
+ "width": 72,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B6",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "end",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 27,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 1
+ }
+ ],
+ "connections": [
+ {
+ "id": "(start -> outer.vg.vd.volume)[0]",
+ "src": "start",
+ "srcArrow": "none",
+ "dst": "outer.vg.vd.volume",
+ "dstArrow": "triangle",
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "stroke": "B1",
+ "borderRadius": 10,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N2",
+ "italic": true,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "",
+ "labelPercentage": 0,
+ "route": [
+ {
+ "x": 216,
+ "y": 78
+ },
+ {
+ "x": 216,
+ "y": 323
+ }
+ ],
+ "animated": false,
+ "tooltip": "",
+ "icon": null,
+ "zIndex": 0
+ },
+ {
+ "id": "(outer.vg.vd.volume -> end)[0]",
+ "src": "outer.vg.vd.volume",
+ "srcArrow": "none",
+ "dst": "end",
+ "dstArrow": "triangle",
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "stroke": "B1",
+ "borderRadius": 10,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N2",
+ "italic": true,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "",
+ "labelPercentage": 0,
+ "route": [
+ {
+ "x": 216,
+ "y": 399
+ },
+ {
+ "x": 216,
+ "y": 624
+ }
+ ],
+ "animated": false,
+ "tooltip": "",
+ "icon": null,
+ "zIndex": 0
+ }
+ ],
+ "root": {
+ "id": "",
+ "type": "",
+ "pos": {
+ "x": 0,
+ "y": 0
+ },
+ "width": 0,
+ "height": 0,
+ "opacity": 0,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "N7",
+ "stroke": "",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 0,
+ "fontFamily": "",
+ "language": "",
+ "color": "",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "zIndex": 0,
+ "level": 0
+ }
+}
diff --git a/e2etests/testdata/stable/multiple_box_selection/elk/sketch.exp.svg b/e2etests/testdata/stable/multiple_box_selection/elk/sketch.exp.svg
new file mode 100644
index 000000000..6ac271a10
--- /dev/null
+++ b/e2etests/testdata/stable/multiple_box_selection/elk/sketch.exp.svg
@@ -0,0 +1,102 @@
+outer start end volume group volume definition volume
+
+
+
\ No newline at end of file
diff --git a/e2etests/testdata/stable/multiple_offset/dagre/board.exp.json b/e2etests/testdata/stable/multiple_offset/dagre/board.exp.json
new file mode 100644
index 000000000..3af11b9ef
--- /dev/null
+++ b/e2etests/testdata/stable/multiple_offset/dagre/board.exp.json
@@ -0,0 +1,1749 @@
+{
+ "name": "",
+ "isFolderOnly": false,
+ "fontFamily": "SourceSansPro",
+ "shapes": [
+ {
+ "id": "n1",
+ "type": "rectangle",
+ "pos": {
+ "x": 0,
+ "y": 41
+ },
+ "width": 143,
+ "height": 321,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B4",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "n1",
+ "fontSize": 28,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 27,
+ "labelHeight": 36,
+ "labelPosition": "OUTSIDE_TOP_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "n1.a",
+ "type": "rectangle",
+ "pos": {
+ "x": 45,
+ "y": 78
+ },
+ "width": 53,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "a",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "n1.b",
+ "type": "rectangle",
+ "pos": {
+ "x": 40,
+ "y": 264
+ },
+ "width": 53,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 5,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B2",
+ "shadow": false,
+ "3d": false,
+ "multiple": true,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "b",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "n2",
+ "type": "rectangle",
+ "pos": {
+ "x": 163,
+ "y": 41
+ },
+ "width": 148,
+ "height": 321,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B4",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "n2",
+ "fontSize": 28,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 27,
+ "labelHeight": 36,
+ "labelPosition": "OUTSIDE_TOP_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "n2.a",
+ "type": "rectangle",
+ "pos": {
+ "x": 211,
+ "y": 78
+ },
+ "width": 53,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "a",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "n2.b",
+ "type": "rectangle",
+ "pos": {
+ "x": 203,
+ "y": 266
+ },
+ "width": 53,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 5,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B2",
+ "shadow": false,
+ "3d": true,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "b",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "n3",
+ "type": "rectangle",
+ "pos": {
+ "x": 331,
+ "y": 51
+ },
+ "width": 143,
+ "height": 321,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B4",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": true,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "n3",
+ "fontSize": 28,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 27,
+ "labelHeight": 36,
+ "labelPosition": "OUTSIDE_TOP_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "n3.a",
+ "type": "rectangle",
+ "pos": {
+ "x": 376,
+ "y": 88
+ },
+ "width": 53,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "a",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "n3.b",
+ "type": "rectangle",
+ "pos": {
+ "x": 371,
+ "y": 274
+ },
+ "width": 53,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 5,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B2",
+ "shadow": false,
+ "3d": false,
+ "multiple": true,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "b",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "n4",
+ "type": "rectangle",
+ "pos": {
+ "x": 494,
+ "y": 56
+ },
+ "width": 148,
+ "height": 321,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B4",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": true,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "n4",
+ "fontSize": 28,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 28,
+ "labelHeight": 36,
+ "labelPosition": "OUTSIDE_TOP_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "n4.a",
+ "type": "rectangle",
+ "pos": {
+ "x": 542,
+ "y": 93
+ },
+ "width": 53,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "a",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "n4.b",
+ "type": "rectangle",
+ "pos": {
+ "x": 534,
+ "y": 281
+ },
+ "width": 53,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 5,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B2",
+ "shadow": false,
+ "3d": true,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "b",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "n5",
+ "type": "rectangle",
+ "pos": {
+ "x": 662,
+ "y": 51
+ },
+ "width": 133,
+ "height": 321,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B4",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": true,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "n5",
+ "fontSize": 28,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 27,
+ "labelHeight": 36,
+ "labelPosition": "OUTSIDE_TOP_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "n5.a",
+ "type": "rectangle",
+ "pos": {
+ "x": 702,
+ "y": 88
+ },
+ "width": 53,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "a",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "n5.b",
+ "type": "rectangle",
+ "pos": {
+ "x": 702,
+ "y": 269
+ },
+ "width": 53,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 5,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B2",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "b",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "n6",
+ "type": "rectangle",
+ "pos": {
+ "x": 815,
+ "y": 56
+ },
+ "width": 133,
+ "height": 321,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B4",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": true,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "n6",
+ "fontSize": 28,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 27,
+ "labelHeight": 36,
+ "labelPosition": "OUTSIDE_TOP_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "n6.a",
+ "type": "rectangle",
+ "pos": {
+ "x": 855,
+ "y": 93
+ },
+ "width": 53,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "a",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "n6.b",
+ "type": "rectangle",
+ "pos": {
+ "x": 855,
+ "y": 274
+ },
+ "width": 53,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 5,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B2",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "b",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "n7",
+ "type": "rectangle",
+ "pos": {
+ "x": 968,
+ "y": 51
+ },
+ "width": 143,
+ "height": 321,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B4",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": true,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "n7",
+ "fontSize": 28,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 27,
+ "labelHeight": 36,
+ "labelPosition": "OUTSIDE_TOP_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "n7.a",
+ "type": "rectangle",
+ "pos": {
+ "x": 1008,
+ "y": 93
+ },
+ "width": 53,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": true,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "a",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "n7.b",
+ "type": "rectangle",
+ "pos": {
+ "x": 1013,
+ "y": 269
+ },
+ "width": 53,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 5,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B2",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "b",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "n8",
+ "type": "rectangle",
+ "pos": {
+ "x": 1131,
+ "y": 56
+ },
+ "width": 148,
+ "height": 321,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B4",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": true,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "n8",
+ "fontSize": 28,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 27,
+ "labelHeight": 36,
+ "labelPosition": "OUTSIDE_TOP_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "n8.a",
+ "type": "rectangle",
+ "pos": {
+ "x": 1171,
+ "y": 100
+ },
+ "width": 53,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": true,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "a",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "n8.b",
+ "type": "rectangle",
+ "pos": {
+ "x": 1179,
+ "y": 274
+ },
+ "width": 53,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 5,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B2",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "b",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "n9",
+ "type": "rectangle",
+ "pos": {
+ "x": 1299,
+ "y": 51
+ },
+ "width": 143,
+ "height": 321,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B4",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": true,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "n9",
+ "fontSize": 28,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 27,
+ "labelHeight": 36,
+ "labelPosition": "OUTSIDE_TOP_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "n9.a",
+ "type": "rectangle",
+ "pos": {
+ "x": 1339,
+ "y": 93
+ },
+ "width": 53,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": true,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "a",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "n9.b",
+ "type": "rectangle",
+ "pos": {
+ "x": 1339,
+ "y": 274
+ },
+ "width": 53,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 5,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B2",
+ "shadow": false,
+ "3d": false,
+ "multiple": true,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "b",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "n10",
+ "type": "rectangle",
+ "pos": {
+ "x": 1462,
+ "y": 56
+ },
+ "width": 148,
+ "height": 321,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B4",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": true,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "n10",
+ "fontSize": 28,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 41,
+ "labelHeight": 36,
+ "labelPosition": "OUTSIDE_TOP_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "n10.a",
+ "type": "rectangle",
+ "pos": {
+ "x": 1502,
+ "y": 100
+ },
+ "width": 53,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": true,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "a",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "n10.b",
+ "type": "rectangle",
+ "pos": {
+ "x": 1502,
+ "y": 281
+ },
+ "width": 53,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 5,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B2",
+ "shadow": false,
+ "3d": true,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "b",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ }
+ ],
+ "connections": [
+ {
+ "id": "n1.(a -> b)[0]",
+ "src": "n1.a",
+ "srcArrow": "none",
+ "dst": "n1.b",
+ "dstArrow": "triangle",
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "stroke": "B1",
+ "borderRadius": 10,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N2",
+ "italic": true,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "",
+ "labelPercentage": 0,
+ "route": [
+ {
+ "x": 71.5,
+ "y": 145
+ },
+ {
+ "x": 71.5,
+ "y": 190.1999969482422
+ },
+ {
+ "x": 71.5,
+ "y": 212
+ },
+ {
+ "x": 71.5,
+ "y": 254
+ }
+ ],
+ "isCurve": true,
+ "animated": false,
+ "tooltip": "",
+ "icon": null,
+ "zIndex": 0
+ },
+ {
+ "id": "n2.(a -> b)[0]",
+ "src": "n2.a",
+ "srcArrow": "none",
+ "dst": "n2.b",
+ "dstArrow": "triangle",
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "stroke": "B1",
+ "borderRadius": 10,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N2",
+ "italic": true,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "",
+ "labelPercentage": 0,
+ "route": [
+ {
+ "x": 237,
+ "y": 145
+ },
+ {
+ "x": 237,
+ "y": 190.1999969482422
+ },
+ {
+ "x": 237,
+ "y": 211.5
+ },
+ {
+ "x": 237,
+ "y": 251.5
+ }
+ ],
+ "isCurve": true,
+ "animated": false,
+ "tooltip": "",
+ "icon": null,
+ "zIndex": 0
+ },
+ {
+ "id": "n3.(a -> b)[0]",
+ "src": "n3.a",
+ "srcArrow": "none",
+ "dst": "n3.b",
+ "dstArrow": "triangle",
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "stroke": "B1",
+ "borderRadius": 10,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N2",
+ "italic": true,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "",
+ "labelPercentage": 0,
+ "route": [
+ {
+ "x": 402.5,
+ "y": 155
+ },
+ {
+ "x": 402.5,
+ "y": 200.1999969482422
+ },
+ {
+ "x": 402.5,
+ "y": 222
+ },
+ {
+ "x": 402.5,
+ "y": 264
+ }
+ ],
+ "isCurve": true,
+ "animated": false,
+ "tooltip": "",
+ "icon": null,
+ "zIndex": 0
+ },
+ {
+ "id": "n4.(a -> b)[0]",
+ "src": "n4.a",
+ "srcArrow": "none",
+ "dst": "n4.b",
+ "dstArrow": "triangle",
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "stroke": "B1",
+ "borderRadius": 10,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N2",
+ "italic": true,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "",
+ "labelPercentage": 0,
+ "route": [
+ {
+ "x": 568,
+ "y": 160
+ },
+ {
+ "x": 568,
+ "y": 205.1999969482422
+ },
+ {
+ "x": 568,
+ "y": 226.5
+ },
+ {
+ "x": 568,
+ "y": 266.5
+ }
+ ],
+ "isCurve": true,
+ "animated": false,
+ "tooltip": "",
+ "icon": null,
+ "zIndex": 0
+ },
+ {
+ "id": "n5.(a -> b)[0]",
+ "src": "n5.a",
+ "srcArrow": "none",
+ "dst": "n5.b",
+ "dstArrow": "triangle",
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "stroke": "B1",
+ "borderRadius": 10,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N2",
+ "italic": true,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "",
+ "labelPercentage": 0,
+ "route": [
+ {
+ "x": 728.5,
+ "y": 155
+ },
+ {
+ "x": 728.5,
+ "y": 200.1999969482422
+ },
+ {
+ "x": 728.5,
+ "y": 223
+ },
+ {
+ "x": 728.5,
+ "y": 269
+ }
+ ],
+ "isCurve": true,
+ "animated": false,
+ "tooltip": "",
+ "icon": null,
+ "zIndex": 0
+ },
+ {
+ "id": "n6.(a -> b)[0]",
+ "src": "n6.a",
+ "srcArrow": "none",
+ "dst": "n6.b",
+ "dstArrow": "triangle",
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "stroke": "B1",
+ "borderRadius": 10,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N2",
+ "italic": true,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "",
+ "labelPercentage": 0,
+ "route": [
+ {
+ "x": 881.5,
+ "y": 160
+ },
+ {
+ "x": 881.5,
+ "y": 205.1999969482422
+ },
+ {
+ "x": 881.5,
+ "y": 228
+ },
+ {
+ "x": 881.5,
+ "y": 274
+ }
+ ],
+ "isCurve": true,
+ "animated": false,
+ "tooltip": "",
+ "icon": null,
+ "zIndex": 0
+ },
+ {
+ "id": "n7.(a -> b)[0]",
+ "src": "n7.a",
+ "srcArrow": "none",
+ "dst": "n7.b",
+ "dstArrow": "triangle",
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "stroke": "B1",
+ "borderRadius": 10,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N2",
+ "italic": true,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "",
+ "labelPercentage": 0,
+ "route": [
+ {
+ "x": 1039.5,
+ "y": 160
+ },
+ {
+ "x": 1039.5,
+ "y": 201.1999969482422
+ },
+ {
+ "x": 1039.5,
+ "y": 223
+ },
+ {
+ "x": 1039.5,
+ "y": 269
+ }
+ ],
+ "isCurve": true,
+ "animated": false,
+ "tooltip": "",
+ "icon": null,
+ "zIndex": 0
+ },
+ {
+ "id": "n8.(a -> b)[0]",
+ "src": "n8.a",
+ "srcArrow": "none",
+ "dst": "n8.b",
+ "dstArrow": "triangle",
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "stroke": "B1",
+ "borderRadius": 10,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N2",
+ "italic": true,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "",
+ "labelPercentage": 0,
+ "route": [
+ {
+ "x": 1205,
+ "y": 166.5
+ },
+ {
+ "x": 1205,
+ "y": 206.5
+ },
+ {
+ "x": 1205,
+ "y": 228
+ },
+ {
+ "x": 1205,
+ "y": 274
+ }
+ ],
+ "isCurve": true,
+ "animated": false,
+ "tooltip": "",
+ "icon": null,
+ "zIndex": 0
+ },
+ {
+ "id": "n9.(a -> b)[0]",
+ "src": "n9.a",
+ "srcArrow": "none",
+ "dst": "n9.b",
+ "dstArrow": "triangle",
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "stroke": "B1",
+ "borderRadius": 10,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N2",
+ "italic": true,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "",
+ "labelPercentage": 0,
+ "route": [
+ {
+ "x": 1370.5,
+ "y": 160
+ },
+ {
+ "x": 1370.5,
+ "y": 201.1999969482422
+ },
+ {
+ "x": 1370.5,
+ "y": 222
+ },
+ {
+ "x": 1370.5,
+ "y": 264
+ }
+ ],
+ "isCurve": true,
+ "animated": false,
+ "tooltip": "",
+ "icon": null,
+ "zIndex": 0
+ },
+ {
+ "id": "n10.(a -> b)[0]",
+ "src": "n10.a",
+ "srcArrow": "none",
+ "dst": "n10.b",
+ "dstArrow": "triangle",
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "stroke": "B1",
+ "borderRadius": 10,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N2",
+ "italic": true,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "",
+ "labelPercentage": 0,
+ "route": [
+ {
+ "x": 1536,
+ "y": 166.5
+ },
+ {
+ "x": 1536,
+ "y": 206.5
+ },
+ {
+ "x": 1536,
+ "y": 226.5
+ },
+ {
+ "x": 1536,
+ "y": 266.5
+ }
+ ],
+ "isCurve": true,
+ "animated": false,
+ "tooltip": "",
+ "icon": null,
+ "zIndex": 0
+ }
+ ],
+ "root": {
+ "id": "",
+ "type": "",
+ "pos": {
+ "x": 0,
+ "y": 0
+ },
+ "width": 0,
+ "height": 0,
+ "opacity": 0,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "N7",
+ "stroke": "",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 0,
+ "fontFamily": "",
+ "language": "",
+ "color": "",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "zIndex": 0,
+ "level": 0
+ }
+}
diff --git a/e2etests/testdata/stable/multiple_offset/dagre/sketch.exp.svg b/e2etests/testdata/stable/multiple_offset/dagre/sketch.exp.svg
new file mode 100644
index 000000000..12e0480ff
--- /dev/null
+++ b/e2etests/testdata/stable/multiple_offset/dagre/sketch.exp.svg
@@ -0,0 +1,120 @@
+n1 n2 n3
+
+ n4 n5
+
+ n6 n7
+
+ n8 n9
+
+ n10 a b a
+
+ b a b a
+
+ b a b a b a b
+
+ a b a b
+
+ a
+
+ b
+
+
+
\ No newline at end of file
diff --git a/e2etests/testdata/stable/multiple_offset/elk/board.exp.json b/e2etests/testdata/stable/multiple_offset/elk/board.exp.json
new file mode 100644
index 000000000..9c8483c2d
--- /dev/null
+++ b/e2etests/testdata/stable/multiple_offset/elk/board.exp.json
@@ -0,0 +1,1659 @@
+{
+ "name": "",
+ "isFolderOnly": false,
+ "fontFamily": "SourceSansPro",
+ "shapes": [
+ {
+ "id": "n1",
+ "type": "rectangle",
+ "pos": {
+ "x": 12,
+ "y": 22
+ },
+ "width": 163,
+ "height": 312,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B4",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "n1",
+ "fontSize": 28,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 27,
+ "labelHeight": 36,
+ "labelPosition": "INSIDE_TOP_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "n1.a",
+ "type": "rectangle",
+ "pos": {
+ "x": 67,
+ "y": 72
+ },
+ "width": 53,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "a",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "n1.b",
+ "type": "rectangle",
+ "pos": {
+ "x": 62,
+ "y": 218
+ },
+ "width": 53,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 5,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B2",
+ "shadow": false,
+ "3d": false,
+ "multiple": true,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "b",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "n2",
+ "type": "rectangle",
+ "pos": {
+ "x": 195,
+ "y": 19
+ },
+ "width": 168,
+ "height": 317,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B4",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "n2",
+ "fontSize": 28,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 27,
+ "labelHeight": 36,
+ "labelPosition": "INSIDE_TOP_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "n2.a",
+ "type": "rectangle",
+ "pos": {
+ "x": 252,
+ "y": 69
+ },
+ "width": 53,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "a",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "n2.b",
+ "type": "rectangle",
+ "pos": {
+ "x": 245,
+ "y": 220
+ },
+ "width": 53,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 5,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B2",
+ "shadow": false,
+ "3d": true,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "b",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "n3",
+ "type": "rectangle",
+ "pos": {
+ "x": 383,
+ "y": 32
+ },
+ "width": 163,
+ "height": 312,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B4",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": true,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "n3",
+ "fontSize": 28,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 27,
+ "labelHeight": 36,
+ "labelPosition": "INSIDE_TOP_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "n3.a",
+ "type": "rectangle",
+ "pos": {
+ "x": 438,
+ "y": 82
+ },
+ "width": 53,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "a",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "n3.b",
+ "type": "rectangle",
+ "pos": {
+ "x": 433,
+ "y": 228
+ },
+ "width": 53,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 5,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B2",
+ "shadow": false,
+ "3d": false,
+ "multiple": true,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "b",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "n4",
+ "type": "rectangle",
+ "pos": {
+ "x": 566,
+ "y": 34
+ },
+ "width": 168,
+ "height": 317,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B4",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": true,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "n4",
+ "fontSize": 28,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 28,
+ "labelHeight": 36,
+ "labelPosition": "INSIDE_TOP_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "n4.a",
+ "type": "rectangle",
+ "pos": {
+ "x": 623,
+ "y": 84
+ },
+ "width": 53,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "a",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "n4.b",
+ "type": "rectangle",
+ "pos": {
+ "x": 616,
+ "y": 235
+ },
+ "width": 53,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 5,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B2",
+ "shadow": false,
+ "3d": true,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "b",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "n5",
+ "type": "rectangle",
+ "pos": {
+ "x": 754,
+ "y": 37
+ },
+ "width": 153,
+ "height": 302,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B4",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": true,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "n5",
+ "fontSize": 28,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 27,
+ "labelHeight": 36,
+ "labelPosition": "INSIDE_TOP_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "n5.a",
+ "type": "rectangle",
+ "pos": {
+ "x": 804,
+ "y": 87
+ },
+ "width": 53,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "a",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "n5.b",
+ "type": "rectangle",
+ "pos": {
+ "x": 804,
+ "y": 223
+ },
+ "width": 53,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 5,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B2",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "b",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "n6",
+ "type": "rectangle",
+ "pos": {
+ "x": 927,
+ "y": 42
+ },
+ "width": 153,
+ "height": 302,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B4",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": true,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "n6",
+ "fontSize": 28,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 27,
+ "labelHeight": 36,
+ "labelPosition": "INSIDE_TOP_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "n6.a",
+ "type": "rectangle",
+ "pos": {
+ "x": 977,
+ "y": 92
+ },
+ "width": 53,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "a",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "n6.b",
+ "type": "rectangle",
+ "pos": {
+ "x": 977,
+ "y": 228
+ },
+ "width": 53,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 5,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B2",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "b",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "n7",
+ "type": "rectangle",
+ "pos": {
+ "x": 1100,
+ "y": 32
+ },
+ "width": 163,
+ "height": 312,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B4",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": true,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "n7",
+ "fontSize": 28,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 27,
+ "labelHeight": 36,
+ "labelPosition": "INSIDE_TOP_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "n7.a",
+ "type": "rectangle",
+ "pos": {
+ "x": 1150,
+ "y": 92
+ },
+ "width": 53,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": true,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "a",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "n7.b",
+ "type": "rectangle",
+ "pos": {
+ "x": 1155,
+ "y": 228
+ },
+ "width": 53,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 5,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B2",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "b",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "n8",
+ "type": "rectangle",
+ "pos": {
+ "x": 1283,
+ "y": 34
+ },
+ "width": 168,
+ "height": 317,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B4",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": true,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "n8",
+ "fontSize": 28,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 27,
+ "labelHeight": 36,
+ "labelPosition": "INSIDE_TOP_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "n8.a",
+ "type": "rectangle",
+ "pos": {
+ "x": 1333,
+ "y": 99
+ },
+ "width": 53,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": true,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "a",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "n8.b",
+ "type": "rectangle",
+ "pos": {
+ "x": 1340,
+ "y": 235
+ },
+ "width": 53,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 5,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B2",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "b",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "n9",
+ "type": "rectangle",
+ "pos": {
+ "x": 1471,
+ "y": 27
+ },
+ "width": 163,
+ "height": 322,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B4",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": true,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "n9",
+ "fontSize": 28,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 27,
+ "labelHeight": 36,
+ "labelPosition": "INSIDE_TOP_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "n9.a",
+ "type": "rectangle",
+ "pos": {
+ "x": 1521,
+ "y": 87
+ },
+ "width": 53,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": true,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "a",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "n9.b",
+ "type": "rectangle",
+ "pos": {
+ "x": 1521,
+ "y": 233
+ },
+ "width": 53,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 5,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B2",
+ "shadow": false,
+ "3d": false,
+ "multiple": true,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "b",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "n10",
+ "type": "rectangle",
+ "pos": {
+ "x": 1654,
+ "y": 27
+ },
+ "width": 168,
+ "height": 332,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B4",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": true,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "n10",
+ "fontSize": 28,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 41,
+ "labelHeight": 36,
+ "labelPosition": "INSIDE_TOP_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "n10.a",
+ "type": "rectangle",
+ "pos": {
+ "x": 1704,
+ "y": 92
+ },
+ "width": 53,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": true,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "a",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "n10.b",
+ "type": "rectangle",
+ "pos": {
+ "x": 1704,
+ "y": 243
+ },
+ "width": 53,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 5,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B2",
+ "shadow": false,
+ "3d": true,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "b",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ }
+ ],
+ "connections": [
+ {
+ "id": "n1.(a -> b)[0]",
+ "src": "n1.a",
+ "srcArrow": "none",
+ "dst": "n1.b",
+ "dstArrow": "triangle",
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "stroke": "B1",
+ "borderRadius": 10,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N2",
+ "italic": true,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "",
+ "labelPercentage": 0,
+ "route": [
+ {
+ "x": 93.5,
+ "y": 138
+ },
+ {
+ "x": 93.5,
+ "y": 208
+ }
+ ],
+ "animated": false,
+ "tooltip": "",
+ "icon": null,
+ "zIndex": 0
+ },
+ {
+ "id": "n2.(a -> b)[0]",
+ "src": "n2.a",
+ "srcArrow": "none",
+ "dst": "n2.b",
+ "dstArrow": "triangle",
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "stroke": "B1",
+ "borderRadius": 10,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N2",
+ "italic": true,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "",
+ "labelPercentage": 0,
+ "route": [
+ {
+ "x": 279,
+ "y": 135.5
+ },
+ {
+ "x": 279,
+ "y": 205.5
+ }
+ ],
+ "animated": false,
+ "tooltip": "",
+ "icon": null,
+ "zIndex": 0
+ },
+ {
+ "id": "n3.(a -> b)[0]",
+ "src": "n3.a",
+ "srcArrow": "none",
+ "dst": "n3.b",
+ "dstArrow": "triangle",
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "stroke": "B1",
+ "borderRadius": 10,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N2",
+ "italic": true,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "",
+ "labelPercentage": 0,
+ "route": [
+ {
+ "x": 464.5,
+ "y": 148
+ },
+ {
+ "x": 464.5,
+ "y": 218
+ }
+ ],
+ "animated": false,
+ "tooltip": "",
+ "icon": null,
+ "zIndex": 0
+ },
+ {
+ "id": "n4.(a -> b)[0]",
+ "src": "n4.a",
+ "srcArrow": "none",
+ "dst": "n4.b",
+ "dstArrow": "triangle",
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "stroke": "B1",
+ "borderRadius": 10,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N2",
+ "italic": true,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "",
+ "labelPercentage": 0,
+ "route": [
+ {
+ "x": 650,
+ "y": 150.5
+ },
+ {
+ "x": 650,
+ "y": 220.5
+ }
+ ],
+ "animated": false,
+ "tooltip": "",
+ "icon": null,
+ "zIndex": 0
+ },
+ {
+ "id": "n5.(a -> b)[0]",
+ "src": "n5.a",
+ "srcArrow": "none",
+ "dst": "n5.b",
+ "dstArrow": "triangle",
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "stroke": "B1",
+ "borderRadius": 10,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N2",
+ "italic": true,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "",
+ "labelPercentage": 0,
+ "route": [
+ {
+ "x": 830.5,
+ "y": 153
+ },
+ {
+ "x": 830.5,
+ "y": 223
+ }
+ ],
+ "animated": false,
+ "tooltip": "",
+ "icon": null,
+ "zIndex": 0
+ },
+ {
+ "id": "n6.(a -> b)[0]",
+ "src": "n6.a",
+ "srcArrow": "none",
+ "dst": "n6.b",
+ "dstArrow": "triangle",
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "stroke": "B1",
+ "borderRadius": 10,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N2",
+ "italic": true,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "",
+ "labelPercentage": 0,
+ "route": [
+ {
+ "x": 1003.5,
+ "y": 158
+ },
+ {
+ "x": 1003.5,
+ "y": 228
+ }
+ ],
+ "animated": false,
+ "tooltip": "",
+ "icon": null,
+ "zIndex": 0
+ },
+ {
+ "id": "n7.(a -> b)[0]",
+ "src": "n7.a",
+ "srcArrow": "none",
+ "dst": "n7.b",
+ "dstArrow": "triangle",
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "stroke": "B1",
+ "borderRadius": 10,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N2",
+ "italic": true,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "",
+ "labelPercentage": 0,
+ "route": [
+ {
+ "x": 1181.5,
+ "y": 158
+ },
+ {
+ "x": 1181.5,
+ "y": 228
+ }
+ ],
+ "animated": false,
+ "tooltip": "",
+ "icon": null,
+ "zIndex": 0
+ },
+ {
+ "id": "n8.(a -> b)[0]",
+ "src": "n8.a",
+ "srcArrow": "none",
+ "dst": "n8.b",
+ "dstArrow": "triangle",
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "stroke": "B1",
+ "borderRadius": 10,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N2",
+ "italic": true,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "",
+ "labelPercentage": 0,
+ "route": [
+ {
+ "x": 1367,
+ "y": 165.5
+ },
+ {
+ "x": 1367,
+ "y": 235.5
+ }
+ ],
+ "animated": false,
+ "tooltip": "",
+ "icon": null,
+ "zIndex": 0
+ },
+ {
+ "id": "n9.(a -> b)[0]",
+ "src": "n9.a",
+ "srcArrow": "none",
+ "dst": "n9.b",
+ "dstArrow": "triangle",
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "stroke": "B1",
+ "borderRadius": 10,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N2",
+ "italic": true,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "",
+ "labelPercentage": 0,
+ "route": [
+ {
+ "x": 1552.5,
+ "y": 153
+ },
+ {
+ "x": 1552.5,
+ "y": 223
+ }
+ ],
+ "animated": false,
+ "tooltip": "",
+ "icon": null,
+ "zIndex": 0
+ },
+ {
+ "id": "n10.(a -> b)[0]",
+ "src": "n10.a",
+ "srcArrow": "none",
+ "dst": "n10.b",
+ "dstArrow": "triangle",
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "stroke": "B1",
+ "borderRadius": 10,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N2",
+ "italic": true,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "",
+ "labelPercentage": 0,
+ "route": [
+ {
+ "x": 1738,
+ "y": 158
+ },
+ {
+ "x": 1738,
+ "y": 228
+ }
+ ],
+ "animated": false,
+ "tooltip": "",
+ "icon": null,
+ "zIndex": 0
+ }
+ ],
+ "root": {
+ "id": "",
+ "type": "",
+ "pos": {
+ "x": 0,
+ "y": 0
+ },
+ "width": 0,
+ "height": 0,
+ "opacity": 0,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "N7",
+ "stroke": "",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 0,
+ "fontFamily": "",
+ "language": "",
+ "color": "",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "zIndex": 0,
+ "level": 0
+ }
+}
diff --git a/e2etests/testdata/stable/multiple_offset/elk/sketch.exp.svg b/e2etests/testdata/stable/multiple_offset/elk/sketch.exp.svg
new file mode 100644
index 000000000..d8b3dfa7e
--- /dev/null
+++ b/e2etests/testdata/stable/multiple_offset/elk/sketch.exp.svg
@@ -0,0 +1,120 @@
+n1 n2 n3
+
+ n4 n5
+
+ n6 n7
+
+ n8 n9
+
+ n10 a b a
+
+ b a b a
+
+ b a b a b a b
+
+ a b a b
+
+ a
+
+ b
+
+
+
\ No newline at end of file
diff --git a/e2etests/testdata/stable/multiple_offset_left/dagre/board.exp.json b/e2etests/testdata/stable/multiple_offset_left/dagre/board.exp.json
new file mode 100644
index 000000000..a0bfacf2b
--- /dev/null
+++ b/e2etests/testdata/stable/multiple_offset_left/dagre/board.exp.json
@@ -0,0 +1,1749 @@
+{
+ "name": "",
+ "isFolderOnly": false,
+ "fontFamily": "SourceSansPro",
+ "shapes": [
+ {
+ "id": "n1",
+ "type": "rectangle",
+ "pos": {
+ "x": 0,
+ "y": 41
+ },
+ "width": 336,
+ "height": 95,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B4",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "n1",
+ "fontSize": 28,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 27,
+ "labelHeight": 36,
+ "labelPosition": "OUTSIDE_TOP_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "n1.a",
+ "type": "rectangle",
+ "pos": {
+ "x": 226,
+ "y": 55
+ },
+ "width": 53,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "a",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "n1.b",
+ "type": "rectangle",
+ "pos": {
+ "x": 53,
+ "y": 60
+ },
+ "width": 53,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 5,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B2",
+ "shadow": false,
+ "3d": false,
+ "multiple": true,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "b",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "n2",
+ "type": "rectangle",
+ "pos": {
+ "x": 0,
+ "y": 217
+ },
+ "width": 336,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B4",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "n2",
+ "fontSize": 28,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 27,
+ "labelHeight": 36,
+ "labelPosition": "OUTSIDE_TOP_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "n2.a",
+ "type": "rectangle",
+ "pos": {
+ "x": 226,
+ "y": 234
+ },
+ "width": 53,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "a",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "n2.b",
+ "type": "rectangle",
+ "pos": {
+ "x": 50,
+ "y": 241
+ },
+ "width": 53,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 5,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B2",
+ "shadow": false,
+ "3d": true,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "b",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "n3",
+ "type": "rectangle",
+ "pos": {
+ "x": 0,
+ "y": 408
+ },
+ "width": 336,
+ "height": 95,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B4",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": true,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "n3",
+ "fontSize": 28,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 27,
+ "labelHeight": 36,
+ "labelPosition": "OUTSIDE_TOP_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "n3.a",
+ "type": "rectangle",
+ "pos": {
+ "x": 226,
+ "y": 422
+ },
+ "width": 53,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "a",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "n3.b",
+ "type": "rectangle",
+ "pos": {
+ "x": 53,
+ "y": 427
+ },
+ "width": 53,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 5,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B2",
+ "shadow": false,
+ "3d": false,
+ "multiple": true,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "b",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "n4",
+ "type": "rectangle",
+ "pos": {
+ "x": 0,
+ "y": 589
+ },
+ "width": 336,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B4",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": true,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "n4",
+ "fontSize": 28,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 28,
+ "labelHeight": 36,
+ "labelPosition": "OUTSIDE_TOP_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "n4.a",
+ "type": "rectangle",
+ "pos": {
+ "x": 226,
+ "y": 606
+ },
+ "width": 53,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "a",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "n4.b",
+ "type": "rectangle",
+ "pos": {
+ "x": 50,
+ "y": 613
+ },
+ "width": 53,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 5,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B2",
+ "shadow": false,
+ "3d": true,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "b",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "n5",
+ "type": "rectangle",
+ "pos": {
+ "x": 0,
+ "y": 765
+ },
+ "width": 336,
+ "height": 85,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B4",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": true,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "n5",
+ "fontSize": 28,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 27,
+ "labelHeight": 36,
+ "labelPosition": "OUTSIDE_TOP_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "n5.a",
+ "type": "rectangle",
+ "pos": {
+ "x": 226,
+ "y": 774
+ },
+ "width": 53,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "a",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "n5.b",
+ "type": "rectangle",
+ "pos": {
+ "x": 58,
+ "y": 774
+ },
+ "width": 53,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 5,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B2",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "b",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "n6",
+ "type": "rectangle",
+ "pos": {
+ "x": 0,
+ "y": 936
+ },
+ "width": 336,
+ "height": 85,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B4",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": true,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "n6",
+ "fontSize": 28,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 27,
+ "labelHeight": 36,
+ "labelPosition": "OUTSIDE_TOP_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "n6.a",
+ "type": "rectangle",
+ "pos": {
+ "x": 226,
+ "y": 945
+ },
+ "width": 53,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "a",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "n6.b",
+ "type": "rectangle",
+ "pos": {
+ "x": 58,
+ "y": 945
+ },
+ "width": 53,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 5,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B2",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "b",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "n7",
+ "type": "rectangle",
+ "pos": {
+ "x": 0,
+ "y": 1097
+ },
+ "width": 336,
+ "height": 95,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B4",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": true,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "n7",
+ "fontSize": 28,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 27,
+ "labelHeight": 36,
+ "labelPosition": "OUTSIDE_TOP_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "n7.a",
+ "type": "rectangle",
+ "pos": {
+ "x": 221,
+ "y": 1116
+ },
+ "width": 53,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": true,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "a",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "n7.b",
+ "type": "rectangle",
+ "pos": {
+ "x": 58,
+ "y": 1111
+ },
+ "width": 53,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 5,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B2",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "b",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "n8",
+ "type": "rectangle",
+ "pos": {
+ "x": 0,
+ "y": 1278
+ },
+ "width": 336,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B4",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": true,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "n8",
+ "fontSize": 28,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 27,
+ "labelHeight": 36,
+ "labelPosition": "OUTSIDE_TOP_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "n8.a",
+ "type": "rectangle",
+ "pos": {
+ "x": 218,
+ "y": 1302
+ },
+ "width": 53,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": true,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "a",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "n8.b",
+ "type": "rectangle",
+ "pos": {
+ "x": 58,
+ "y": 1295
+ },
+ "width": 53,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 5,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B2",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "b",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "n9",
+ "type": "rectangle",
+ "pos": {
+ "x": 0,
+ "y": 1454
+ },
+ "width": 336,
+ "height": 95,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B4",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": true,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "n9",
+ "fontSize": 28,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 27,
+ "labelHeight": 36,
+ "labelPosition": "OUTSIDE_TOP_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "n9.a",
+ "type": "rectangle",
+ "pos": {
+ "x": 221,
+ "y": 1473
+ },
+ "width": 53,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": true,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "a",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "n9.b",
+ "type": "rectangle",
+ "pos": {
+ "x": 53,
+ "y": 1473
+ },
+ "width": 53,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 5,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B2",
+ "shadow": false,
+ "3d": false,
+ "multiple": true,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "b",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "n10",
+ "type": "rectangle",
+ "pos": {
+ "x": 0,
+ "y": 1635
+ },
+ "width": 336,
+ "height": 100,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B4",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": true,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "n10",
+ "fontSize": 28,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 41,
+ "labelHeight": 36,
+ "labelPosition": "OUTSIDE_TOP_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "n10.a",
+ "type": "rectangle",
+ "pos": {
+ "x": 218,
+ "y": 1659
+ },
+ "width": 53,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": true,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "a",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "n10.b",
+ "type": "rectangle",
+ "pos": {
+ "x": 50,
+ "y": 1659
+ },
+ "width": 53,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 5,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B2",
+ "shadow": false,
+ "3d": true,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "b",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ }
+ ],
+ "connections": [
+ {
+ "id": "n1.(a -> b)[0]",
+ "src": "n1.a",
+ "srcArrow": "none",
+ "dst": "n1.b",
+ "dstArrow": "triangle",
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "stroke": "B1",
+ "borderRadius": 10,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N2",
+ "italic": true,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "",
+ "labelPercentage": 0,
+ "route": [
+ {
+ "x": 225.5,
+ "y": 88.5
+ },
+ {
+ "x": 179.5,
+ "y": 88.5
+ },
+ {
+ "x": 157.60000610351562,
+ "y": 88.5
+ },
+ {
+ "x": 116,
+ "y": 88.5
+ }
+ ],
+ "isCurve": true,
+ "animated": false,
+ "tooltip": "",
+ "icon": null,
+ "zIndex": 0
+ },
+ {
+ "id": "n2.(a -> b)[0]",
+ "src": "n2.a",
+ "srcArrow": "none",
+ "dst": "n2.b",
+ "dstArrow": "triangle",
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "stroke": "B1",
+ "borderRadius": 10,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N2",
+ "italic": true,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "",
+ "labelPercentage": 0,
+ "route": [
+ {
+ "x": 225.5,
+ "y": 267
+ },
+ {
+ "x": 179.5,
+ "y": 267
+ },
+ {
+ "x": 158,
+ "y": 267
+ },
+ {
+ "x": 118,
+ "y": 267
+ }
+ ],
+ "isCurve": true,
+ "animated": false,
+ "tooltip": "",
+ "icon": null,
+ "zIndex": 0
+ },
+ {
+ "id": "n3.(a -> b)[0]",
+ "src": "n3.a",
+ "srcArrow": "none",
+ "dst": "n3.b",
+ "dstArrow": "triangle",
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "stroke": "B1",
+ "borderRadius": 10,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N2",
+ "italic": true,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "",
+ "labelPercentage": 0,
+ "route": [
+ {
+ "x": 225.5,
+ "y": 455.5
+ },
+ {
+ "x": 179.5,
+ "y": 455.5
+ },
+ {
+ "x": 157.60000610351562,
+ "y": 455.5
+ },
+ {
+ "x": 116,
+ "y": 455.5
+ }
+ ],
+ "isCurve": true,
+ "animated": false,
+ "tooltip": "",
+ "icon": null,
+ "zIndex": 0
+ },
+ {
+ "id": "n4.(a -> b)[0]",
+ "src": "n4.a",
+ "srcArrow": "none",
+ "dst": "n4.b",
+ "dstArrow": "triangle",
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "stroke": "B1",
+ "borderRadius": 10,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N2",
+ "italic": true,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "",
+ "labelPercentage": 0,
+ "route": [
+ {
+ "x": 225.5,
+ "y": 639
+ },
+ {
+ "x": 179.5,
+ "y": 639
+ },
+ {
+ "x": 158,
+ "y": 639
+ },
+ {
+ "x": 118,
+ "y": 639
+ }
+ ],
+ "isCurve": true,
+ "animated": false,
+ "tooltip": "",
+ "icon": null,
+ "zIndex": 0
+ },
+ {
+ "id": "n5.(a -> b)[0]",
+ "src": "n5.a",
+ "srcArrow": "none",
+ "dst": "n5.b",
+ "dstArrow": "triangle",
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "stroke": "B1",
+ "borderRadius": 10,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N2",
+ "italic": true,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "",
+ "labelPercentage": 0,
+ "route": [
+ {
+ "x": 225.5,
+ "y": 807.5
+ },
+ {
+ "x": 179.5,
+ "y": 807.5
+ },
+ {
+ "x": 156.60000610351562,
+ "y": 807.5
+ },
+ {
+ "x": 111,
+ "y": 807.5
+ }
+ ],
+ "isCurve": true,
+ "animated": false,
+ "tooltip": "",
+ "icon": null,
+ "zIndex": 0
+ },
+ {
+ "id": "n6.(a -> b)[0]",
+ "src": "n6.a",
+ "srcArrow": "none",
+ "dst": "n6.b",
+ "dstArrow": "triangle",
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "stroke": "B1",
+ "borderRadius": 10,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N2",
+ "italic": true,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "",
+ "labelPercentage": 0,
+ "route": [
+ {
+ "x": 225.5,
+ "y": 978.5
+ },
+ {
+ "x": 179.5,
+ "y": 978.5
+ },
+ {
+ "x": 156.60000610351562,
+ "y": 978.5
+ },
+ {
+ "x": 111,
+ "y": 978.5
+ }
+ ],
+ "isCurve": true,
+ "animated": false,
+ "tooltip": "",
+ "icon": null,
+ "zIndex": 0
+ },
+ {
+ "id": "n7.(a -> b)[0]",
+ "src": "n7.a",
+ "srcArrow": "none",
+ "dst": "n7.b",
+ "dstArrow": "triangle",
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "stroke": "B1",
+ "borderRadius": 10,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N2",
+ "italic": true,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "",
+ "labelPercentage": 0,
+ "route": [
+ {
+ "x": 220.5,
+ "y": 1144.5
+ },
+ {
+ "x": 178.5,
+ "y": 1144.5
+ },
+ {
+ "x": 156.60000610351562,
+ "y": 1144.5
+ },
+ {
+ "x": 111,
+ "y": 1144.5
+ }
+ ],
+ "isCurve": true,
+ "animated": false,
+ "tooltip": "",
+ "icon": null,
+ "zIndex": 0
+ },
+ {
+ "id": "n8.(a -> b)[0]",
+ "src": "n8.a",
+ "srcArrow": "none",
+ "dst": "n8.b",
+ "dstArrow": "triangle",
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "stroke": "B1",
+ "borderRadius": 10,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N2",
+ "italic": true,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "",
+ "labelPercentage": 0,
+ "route": [
+ {
+ "x": 218,
+ "y": 1328
+ },
+ {
+ "x": 178,
+ "y": 1328
+ },
+ {
+ "x": 156.60000610351562,
+ "y": 1328
+ },
+ {
+ "x": 111,
+ "y": 1328
+ }
+ ],
+ "isCurve": true,
+ "animated": false,
+ "tooltip": "",
+ "icon": null,
+ "zIndex": 0
+ },
+ {
+ "id": "n9.(a -> b)[0]",
+ "src": "n9.a",
+ "srcArrow": "none",
+ "dst": "n9.b",
+ "dstArrow": "triangle",
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "stroke": "B1",
+ "borderRadius": 10,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N2",
+ "italic": true,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "",
+ "labelPercentage": 0,
+ "route": [
+ {
+ "x": 220.5,
+ "y": 1501.5
+ },
+ {
+ "x": 178.5,
+ "y": 1501.5
+ },
+ {
+ "x": 157.60000610351562,
+ "y": 1501.5
+ },
+ {
+ "x": 116,
+ "y": 1501.5
+ }
+ ],
+ "isCurve": true,
+ "animated": false,
+ "tooltip": "",
+ "icon": null,
+ "zIndex": 0
+ },
+ {
+ "id": "n10.(a -> b)[0]",
+ "src": "n10.a",
+ "srcArrow": "none",
+ "dst": "n10.b",
+ "dstArrow": "triangle",
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "stroke": "B1",
+ "borderRadius": 10,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N2",
+ "italic": true,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "",
+ "labelPercentage": 0,
+ "route": [
+ {
+ "x": 218,
+ "y": 1685
+ },
+ {
+ "x": 178,
+ "y": 1685
+ },
+ {
+ "x": 158,
+ "y": 1685
+ },
+ {
+ "x": 118,
+ "y": 1685
+ }
+ ],
+ "isCurve": true,
+ "animated": false,
+ "tooltip": "",
+ "icon": null,
+ "zIndex": 0
+ }
+ ],
+ "root": {
+ "id": "",
+ "type": "",
+ "pos": {
+ "x": 0,
+ "y": 0
+ },
+ "width": 0,
+ "height": 0,
+ "opacity": 0,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "N7",
+ "stroke": "",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 0,
+ "fontFamily": "",
+ "language": "",
+ "color": "",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "zIndex": 0,
+ "level": 0
+ }
+}
diff --git a/e2etests/testdata/stable/multiple_offset_left/dagre/sketch.exp.svg b/e2etests/testdata/stable/multiple_offset_left/dagre/sketch.exp.svg
new file mode 100644
index 000000000..39bcf1dbd
--- /dev/null
+++ b/e2etests/testdata/stable/multiple_offset_left/dagre/sketch.exp.svg
@@ -0,0 +1,120 @@
+n1 n2 n3
+
+ n4 n5
+
+ n6 n7
+
+ n8 n9
+
+ n10 a b a
+
+ b a b a
+
+ b a b a b a b
+
+ a b a b
+
+ a
+
+ b
+
+
+
\ No newline at end of file
diff --git a/e2etests/testdata/stable/multiple_offset_left/elk/board.exp.json b/e2etests/testdata/stable/multiple_offset_left/elk/board.exp.json
new file mode 100644
index 000000000..480bdb042
--- /dev/null
+++ b/e2etests/testdata/stable/multiple_offset_left/elk/board.exp.json
@@ -0,0 +1,1659 @@
+{
+ "name": "",
+ "isFolderOnly": false,
+ "fontFamily": "SourceSansPro",
+ "shapes": [
+ {
+ "id": "n1",
+ "type": "rectangle",
+ "pos": {
+ "x": 22,
+ "y": 12
+ },
+ "width": 286,
+ "height": 176,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B4",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "n1",
+ "fontSize": 28,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 27,
+ "labelHeight": 36,
+ "labelPosition": "INSIDE_TOP_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "n1.a",
+ "type": "rectangle",
+ "pos": {
+ "x": 205,
+ "y": 67
+ },
+ "width": 53,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "a",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "n1.b",
+ "type": "rectangle",
+ "pos": {
+ "x": 72,
+ "y": 72
+ },
+ "width": 53,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 5,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B2",
+ "shadow": false,
+ "3d": false,
+ "multiple": true,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "b",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "n2",
+ "type": "rectangle",
+ "pos": {
+ "x": 19,
+ "y": 208
+ },
+ "width": 291,
+ "height": 181,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B4",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "n2",
+ "fontSize": 28,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 27,
+ "labelHeight": 36,
+ "labelPosition": "INSIDE_TOP_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "n2.a",
+ "type": "rectangle",
+ "pos": {
+ "x": 207,
+ "y": 265
+ },
+ "width": 53,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "a",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "n2.b",
+ "type": "rectangle",
+ "pos": {
+ "x": 69,
+ "y": 273
+ },
+ "width": 53,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 5,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B2",
+ "shadow": false,
+ "3d": true,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "b",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "n3",
+ "type": "rectangle",
+ "pos": {
+ "x": 22,
+ "y": 419
+ },
+ "width": 286,
+ "height": 176,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B4",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": true,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "n3",
+ "fontSize": 28,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 27,
+ "labelHeight": 36,
+ "labelPosition": "INSIDE_TOP_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "n3.a",
+ "type": "rectangle",
+ "pos": {
+ "x": 205,
+ "y": 474
+ },
+ "width": 53,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "a",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "n3.b",
+ "type": "rectangle",
+ "pos": {
+ "x": 72,
+ "y": 479
+ },
+ "width": 53,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 5,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B2",
+ "shadow": false,
+ "3d": false,
+ "multiple": true,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "b",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "n4",
+ "type": "rectangle",
+ "pos": {
+ "x": 19,
+ "y": 620
+ },
+ "width": 291,
+ "height": 181,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B4",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": true,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "n4",
+ "fontSize": 28,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 28,
+ "labelHeight": 36,
+ "labelPosition": "INSIDE_TOP_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "n4.a",
+ "type": "rectangle",
+ "pos": {
+ "x": 207,
+ "y": 677
+ },
+ "width": 53,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "a",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "n4.b",
+ "type": "rectangle",
+ "pos": {
+ "x": 69,
+ "y": 685
+ },
+ "width": 53,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 5,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B2",
+ "shadow": false,
+ "3d": true,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "b",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "n5",
+ "type": "rectangle",
+ "pos": {
+ "x": 27,
+ "y": 816
+ },
+ "width": 276,
+ "height": 166,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B4",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": true,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "n5",
+ "fontSize": 28,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 27,
+ "labelHeight": 36,
+ "labelPosition": "INSIDE_TOP_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "n5.a",
+ "type": "rectangle",
+ "pos": {
+ "x": 200,
+ "y": 866
+ },
+ "width": 53,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "a",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "n5.b",
+ "type": "rectangle",
+ "pos": {
+ "x": 77,
+ "y": 866
+ },
+ "width": 53,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 5,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B2",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "b",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "n6",
+ "type": "rectangle",
+ "pos": {
+ "x": 27,
+ "y": 1007
+ },
+ "width": 276,
+ "height": 166,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B4",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": true,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "n6",
+ "fontSize": 28,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 27,
+ "labelHeight": 36,
+ "labelPosition": "INSIDE_TOP_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "n6.a",
+ "type": "rectangle",
+ "pos": {
+ "x": 200,
+ "y": 1057
+ },
+ "width": 53,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "a",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "n6.b",
+ "type": "rectangle",
+ "pos": {
+ "x": 77,
+ "y": 1057
+ },
+ "width": 53,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 5,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B2",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "b",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "n7",
+ "type": "rectangle",
+ "pos": {
+ "x": 22,
+ "y": 1188
+ },
+ "width": 286,
+ "height": 176,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B4",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": true,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "n7",
+ "fontSize": 28,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 27,
+ "labelHeight": 36,
+ "labelPosition": "INSIDE_TOP_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "n7.a",
+ "type": "rectangle",
+ "pos": {
+ "x": 195,
+ "y": 1248
+ },
+ "width": 53,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": true,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "a",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "n7.b",
+ "type": "rectangle",
+ "pos": {
+ "x": 72,
+ "y": 1243
+ },
+ "width": 53,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 5,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B2",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "b",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "n8",
+ "type": "rectangle",
+ "pos": {
+ "x": 19,
+ "y": 1389
+ },
+ "width": 291,
+ "height": 181,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B4",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": true,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "n8",
+ "fontSize": 28,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 27,
+ "labelHeight": 36,
+ "labelPosition": "INSIDE_TOP_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "n8.a",
+ "type": "rectangle",
+ "pos": {
+ "x": 192,
+ "y": 1454
+ },
+ "width": 53,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": true,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "a",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "n8.b",
+ "type": "rectangle",
+ "pos": {
+ "x": 69,
+ "y": 1446
+ },
+ "width": 53,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 5,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B2",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "b",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "n9",
+ "type": "rectangle",
+ "pos": {
+ "x": 17,
+ "y": 1585
+ },
+ "width": 296,
+ "height": 176,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B4",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": true,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "n9",
+ "fontSize": 28,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 27,
+ "labelHeight": 36,
+ "labelPosition": "INSIDE_TOP_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "n9.a",
+ "type": "rectangle",
+ "pos": {
+ "x": 200,
+ "y": 1645
+ },
+ "width": 53,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": false,
+ "multiple": true,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "a",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "n9.b",
+ "type": "rectangle",
+ "pos": {
+ "x": 67,
+ "y": 1645
+ },
+ "width": 53,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 5,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B2",
+ "shadow": false,
+ "3d": false,
+ "multiple": true,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "b",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "n10",
+ "type": "rectangle",
+ "pos": {
+ "x": 12,
+ "y": 1786
+ },
+ "width": 306,
+ "height": 181,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B4",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": true,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "n10",
+ "fontSize": 28,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 41,
+ "labelHeight": 36,
+ "labelPosition": "INSIDE_TOP_CENTER",
+ "zIndex": 0,
+ "level": 1
+ },
+ {
+ "id": "n10.a",
+ "type": "rectangle",
+ "pos": {
+ "x": 200,
+ "y": 1851
+ },
+ "width": 53,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B1",
+ "shadow": false,
+ "3d": true,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "a",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ },
+ {
+ "id": "n10.b",
+ "type": "rectangle",
+ "pos": {
+ "x": 62,
+ "y": 1851
+ },
+ "width": 53,
+ "height": 66,
+ "opacity": 1,
+ "strokeDash": 5,
+ "strokeWidth": 2,
+ "borderRadius": 0,
+ "fill": "B5",
+ "stroke": "B2",
+ "shadow": false,
+ "3d": true,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "b",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N1",
+ "italic": false,
+ "bold": true,
+ "underline": false,
+ "labelWidth": 8,
+ "labelHeight": 21,
+ "labelPosition": "INSIDE_MIDDLE_CENTER",
+ "zIndex": 0,
+ "level": 2
+ }
+ ],
+ "connections": [
+ {
+ "id": "n1.(a -> b)[0]",
+ "src": "n1.a",
+ "srcArrow": "none",
+ "dst": "n1.b",
+ "dstArrow": "triangle",
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "stroke": "B1",
+ "borderRadius": 10,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N2",
+ "italic": true,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "",
+ "labelPercentage": 0,
+ "route": [
+ {
+ "x": 205,
+ "y": 100
+ },
+ {
+ "x": 135,
+ "y": 100
+ }
+ ],
+ "animated": false,
+ "tooltip": "",
+ "icon": null,
+ "zIndex": 0
+ },
+ {
+ "id": "n2.(a -> b)[0]",
+ "src": "n2.a",
+ "srcArrow": "none",
+ "dst": "n2.b",
+ "dstArrow": "triangle",
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "stroke": "B1",
+ "borderRadius": 10,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N2",
+ "italic": true,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "",
+ "labelPercentage": 0,
+ "route": [
+ {
+ "x": 207.5,
+ "y": 298.5
+ },
+ {
+ "x": 137.5,
+ "y": 298.5
+ }
+ ],
+ "animated": false,
+ "tooltip": "",
+ "icon": null,
+ "zIndex": 0
+ },
+ {
+ "id": "n3.(a -> b)[0]",
+ "src": "n3.a",
+ "srcArrow": "none",
+ "dst": "n3.b",
+ "dstArrow": "triangle",
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "stroke": "B1",
+ "borderRadius": 10,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N2",
+ "italic": true,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "",
+ "labelPercentage": 0,
+ "route": [
+ {
+ "x": 205,
+ "y": 507
+ },
+ {
+ "x": 135,
+ "y": 507
+ }
+ ],
+ "animated": false,
+ "tooltip": "",
+ "icon": null,
+ "zIndex": 0
+ },
+ {
+ "id": "n4.(a -> b)[0]",
+ "src": "n4.a",
+ "srcArrow": "none",
+ "dst": "n4.b",
+ "dstArrow": "triangle",
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "stroke": "B1",
+ "borderRadius": 10,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N2",
+ "italic": true,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "",
+ "labelPercentage": 0,
+ "route": [
+ {
+ "x": 207.5,
+ "y": 710.5
+ },
+ {
+ "x": 137.5,
+ "y": 710.5
+ }
+ ],
+ "animated": false,
+ "tooltip": "",
+ "icon": null,
+ "zIndex": 0
+ },
+ {
+ "id": "n5.(a -> b)[0]",
+ "src": "n5.a",
+ "srcArrow": "none",
+ "dst": "n5.b",
+ "dstArrow": "triangle",
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "stroke": "B1",
+ "borderRadius": 10,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N2",
+ "italic": true,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "",
+ "labelPercentage": 0,
+ "route": [
+ {
+ "x": 200,
+ "y": 899
+ },
+ {
+ "x": 130,
+ "y": 899
+ }
+ ],
+ "animated": false,
+ "tooltip": "",
+ "icon": null,
+ "zIndex": 0
+ },
+ {
+ "id": "n6.(a -> b)[0]",
+ "src": "n6.a",
+ "srcArrow": "none",
+ "dst": "n6.b",
+ "dstArrow": "triangle",
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "stroke": "B1",
+ "borderRadius": 10,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N2",
+ "italic": true,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "",
+ "labelPercentage": 0,
+ "route": [
+ {
+ "x": 200,
+ "y": 1090
+ },
+ {
+ "x": 130,
+ "y": 1090
+ }
+ ],
+ "animated": false,
+ "tooltip": "",
+ "icon": null,
+ "zIndex": 0
+ },
+ {
+ "id": "n7.(a -> b)[0]",
+ "src": "n7.a",
+ "srcArrow": "none",
+ "dst": "n7.b",
+ "dstArrow": "triangle",
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "stroke": "B1",
+ "borderRadius": 10,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N2",
+ "italic": true,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "",
+ "labelPercentage": 0,
+ "route": [
+ {
+ "x": 195,
+ "y": 1276
+ },
+ {
+ "x": 125,
+ "y": 1276
+ }
+ ],
+ "animated": false,
+ "tooltip": "",
+ "icon": null,
+ "zIndex": 0
+ },
+ {
+ "id": "n8.(a -> b)[0]",
+ "src": "n8.a",
+ "srcArrow": "none",
+ "dst": "n8.b",
+ "dstArrow": "triangle",
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "stroke": "B1",
+ "borderRadius": 10,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N2",
+ "italic": true,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "",
+ "labelPercentage": 0,
+ "route": [
+ {
+ "x": 192.5,
+ "y": 1479.5
+ },
+ {
+ "x": 122.5,
+ "y": 1479.5
+ }
+ ],
+ "animated": false,
+ "tooltip": "",
+ "icon": null,
+ "zIndex": 0
+ },
+ {
+ "id": "n9.(a -> b)[0]",
+ "src": "n9.a",
+ "srcArrow": "none",
+ "dst": "n9.b",
+ "dstArrow": "triangle",
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "stroke": "B1",
+ "borderRadius": 10,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N2",
+ "italic": true,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "",
+ "labelPercentage": 0,
+ "route": [
+ {
+ "x": 200,
+ "y": 1673
+ },
+ {
+ "x": 130,
+ "y": 1673
+ }
+ ],
+ "animated": false,
+ "tooltip": "",
+ "icon": null,
+ "zIndex": 0
+ },
+ {
+ "id": "n10.(a -> b)[0]",
+ "src": "n10.a",
+ "srcArrow": "none",
+ "dst": "n10.b",
+ "dstArrow": "triangle",
+ "opacity": 1,
+ "strokeDash": 0,
+ "strokeWidth": 2,
+ "stroke": "B1",
+ "borderRadius": 10,
+ "label": "",
+ "fontSize": 16,
+ "fontFamily": "DEFAULT",
+ "language": "",
+ "color": "N2",
+ "italic": true,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "labelPosition": "",
+ "labelPercentage": 0,
+ "route": [
+ {
+ "x": 200,
+ "y": 1876.5
+ },
+ {
+ "x": 130,
+ "y": 1876.5
+ }
+ ],
+ "animated": false,
+ "tooltip": "",
+ "icon": null,
+ "zIndex": 0
+ }
+ ],
+ "root": {
+ "id": "",
+ "type": "",
+ "pos": {
+ "x": 0,
+ "y": 0
+ },
+ "width": 0,
+ "height": 0,
+ "opacity": 0,
+ "strokeDash": 0,
+ "strokeWidth": 0,
+ "borderRadius": 0,
+ "fill": "N7",
+ "stroke": "",
+ "shadow": false,
+ "3d": false,
+ "multiple": false,
+ "double-border": false,
+ "tooltip": "",
+ "link": "",
+ "icon": null,
+ "iconPosition": "",
+ "blend": false,
+ "fields": null,
+ "methods": null,
+ "columns": null,
+ "label": "",
+ "fontSize": 0,
+ "fontFamily": "",
+ "language": "",
+ "color": "",
+ "italic": false,
+ "bold": false,
+ "underline": false,
+ "labelWidth": 0,
+ "labelHeight": 0,
+ "zIndex": 0,
+ "level": 0
+ }
+}
diff --git a/e2etests/testdata/stable/multiple_offset_left/elk/sketch.exp.svg b/e2etests/testdata/stable/multiple_offset_left/elk/sketch.exp.svg
new file mode 100644
index 000000000..7cdc1cc23
--- /dev/null
+++ b/e2etests/testdata/stable/multiple_offset_left/elk/sketch.exp.svg
@@ -0,0 +1,120 @@
+n1 n2 n3
+
+ n4 n5
+
+ n6 n7
+
+ n8 n9
+
+ n10 a b a
+
+ b a b a
+
+ b a b a b a b
+
+ a b a b
+
+ a
+
+ b
+
+
+
\ No newline at end of file
diff --git a/e2etests/testdata/stable/multiple_trees/dagre/board.exp.json b/e2etests/testdata/stable/multiple_trees/dagre/board.exp.json
index 9dda925a7..d24969232 100644
--- a/e2etests/testdata/stable/multiple_trees/dagre/board.exp.json
+++ b/e2etests/testdata/stable/multiple_trees/dagre/board.exp.json
@@ -974,19 +974,19 @@
"route": [
{
"x": 515,
- "y": 369.09781089892874
+ "y": 369.09698486328125
},
{
- "x": 106.79999999999995,
- "y": 432.2195621797857
+ "x": 106.79900360107422,
+ "y": 432.218994140625
},
{
- "x": 14.350000000000001,
- "y": 458.6953020134228
+ "x": 14.350000381469727,
+ "y": 458.69500732421875
},
{
"x": 52.75,
- "y": 501.4765100671141
+ "y": 501.47601318359375
}
],
"isCurve": true,
@@ -1021,11 +1021,11 @@
"route": [
{
"x": 515,
- "y": 371.45487894350697
+ "y": 371.4540100097656
},
{
- "x": 263.6,
- "y": 432.6909757887014
+ "x": 263.6000061035156,
+ "y": 432.69000244140625
},
{
"x": 200.75,
@@ -1068,11 +1068,11 @@
"route": [
{
"x": 515,
- "y": 384.4646017699115
+ "y": 384.4639892578125
},
{
- "x": 445.8,
- "y": 435.2929203539823
+ "x": 445.79998779296875,
+ "y": 435.2919921875
},
{
"x": 428.5,
@@ -1115,11 +1115,11 @@
"route": [
{
"x": 568,
- "y": 384.3788546255507
+ "y": 384.37799072265625
},
{
- "x": 637.6,
- "y": 435.2757709251101
+ "x": 637.5999755859375,
+ "y": 435.2749938964844
},
{
"x": 655,
@@ -1162,11 +1162,11 @@
"route": [
{
"x": 568,
- "y": 371.526706231454
+ "y": 371.5260009765625
},
{
- "x": 816.4,
- "y": 432.7053412462908
+ "x": 816.4000244140625,
+ "y": 432.7049865722656
},
{
"x": 878.5,
@@ -1256,15 +1256,15 @@
"route": [
{
"x": 568,
- "y": 370.45781637717124
+ "y": 370.4570007324219
},
{
- "x": 869.2,
- "y": 432.49156327543426
+ "x": 869.2000122070312,
+ "y": 432.4909973144531
},
{
- "x": 954.7,
- "y": 458.8
+ "x": 954.7000122070312,
+ "y": 458.79998779296875
},
{
"x": 995.5,
@@ -1302,15 +1302,15 @@
"labelPercentage": 0,
"route": [
{
- "x": 24.599397590361445,
+ "x": 24.599000930786133,
"y": 398
},
{
- "x": 24.71987951807229,
+ "x": 24.7189998626709,
"y": 438
},
{
- "x": 31.35,
+ "x": 31.350000381469727,
"y": 458
},
{
@@ -1349,15 +1349,15 @@
"labelPercentage": 0,
"route": [
{
- "x": 134.09939759036143,
+ "x": 134.0989990234375,
"y": 398
},
{
- "x": 134.21987951807228,
+ "x": 134.218994140625,
"y": 438
},
{
- "x": 127.65,
+ "x": 127.6500015258789,
"y": 458
},
{
@@ -1404,7 +1404,7 @@
"y": 106
},
{
- "x": 492.6,
+ "x": 492.6000061035156,
"y": 126
},
{
@@ -1451,7 +1451,7 @@
"y": 106
},
{
- "x": 590.4,
+ "x": 590.4000244140625,
"y": 126
},
{
@@ -1490,11 +1490,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 177.88855421686748,
+ "x": 177.88800048828125,
"y": 564
},
{
- "x": 150.1777108433735,
+ "x": 150.177001953125,
"y": 604
},
{
@@ -1537,11 +1537,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 223.61144578313252,
+ "x": 223.61099243164062,
"y": 564
},
{
- "x": 251.3222891566265,
+ "x": 251.32200622558594,
"y": 604
},
{
@@ -1584,11 +1584,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 405.9367469879518,
+ "x": 405.9360046386719,
"y": 564
},
{
- "x": 378.58734939759034,
+ "x": 378.5870056152344,
"y": 604
},
{
@@ -1631,11 +1631,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 451.0632530120482,
+ "x": 451.06298828125,
"y": 564
},
{
- "x": 478.41265060240966,
+ "x": 478.4119873046875,
"y": 604
},
{
@@ -1678,11 +1678,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 632.6355421686746,
+ "x": 632.635009765625,
"y": 564
},
{
- "x": 605.527108433735,
+ "x": 605.5269775390625,
"y": 604
},
{
@@ -1725,11 +1725,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 677.3644578313254,
+ "x": 677.364013671875,
"y": 564
},
{
- "x": 704.472891566265,
+ "x": 704.4719848632812,
"y": 604
},
{
@@ -1819,11 +1819,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 856.1355421686746,
+ "x": 856.135009765625,
"y": 564
},
{
- "x": 829.027108433735,
+ "x": 829.0269775390625,
"y": 604
},
{
@@ -1866,11 +1866,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 900.8644578313254,
+ "x": 900.864013671875,
"y": 564
},
{
- "x": 927.972891566265,
+ "x": 927.9719848632812,
"y": 604
},
{
@@ -1921,7 +1921,7 @@
"y": 438
},
{
- "x": 971.3,
+ "x": 971.2999877929688,
"y": 458
},
{
diff --git a/e2etests/testdata/stable/multiple_trees/dagre/sketch.exp.svg b/e2etests/testdata/stable/multiple_trees/dagre/sketch.exp.svg
index 655f63724..18447280f 100644
--- a/e2etests/testdata/stable/multiple_trees/dagre/sketch.exp.svg
+++ b/e2etests/testdata/stable/multiple_trees/dagre/sketch.exp.svg
@@ -1,10 +1,10 @@
-a b c d e f g h i j k l m n o p q r s t u v w
+ .d2-1740979091 .fill-N1{fill:#0A0F25;}
+ .d2-1740979091 .fill-N2{fill:#676C7E;}
+ .d2-1740979091 .fill-N3{fill:#9499AB;}
+ .d2-1740979091 .fill-N4{fill:#CFD2DD;}
+ .d2-1740979091 .fill-N5{fill:#DEE1EB;}
+ .d2-1740979091 .fill-N6{fill:#EEF1F8;}
+ .d2-1740979091 .fill-N7{fill:#FFFFFF;}
+ .d2-1740979091 .fill-B1{fill:#0D32B2;}
+ .d2-1740979091 .fill-B2{fill:#0D32B2;}
+ .d2-1740979091 .fill-B3{fill:#E3E9FD;}
+ .d2-1740979091 .fill-B4{fill:#E3E9FD;}
+ .d2-1740979091 .fill-B5{fill:#EDF0FD;}
+ .d2-1740979091 .fill-B6{fill:#F7F8FE;}
+ .d2-1740979091 .fill-AA2{fill:#4A6FF3;}
+ .d2-1740979091 .fill-AA4{fill:#EDF0FD;}
+ .d2-1740979091 .fill-AA5{fill:#F7F8FE;}
+ .d2-1740979091 .fill-AB4{fill:#EDF0FD;}
+ .d2-1740979091 .fill-AB5{fill:#F7F8FE;}
+ .d2-1740979091 .stroke-N1{stroke:#0A0F25;}
+ .d2-1740979091 .stroke-N2{stroke:#676C7E;}
+ .d2-1740979091 .stroke-N3{stroke:#9499AB;}
+ .d2-1740979091 .stroke-N4{stroke:#CFD2DD;}
+ .d2-1740979091 .stroke-N5{stroke:#DEE1EB;}
+ .d2-1740979091 .stroke-N6{stroke:#EEF1F8;}
+ .d2-1740979091 .stroke-N7{stroke:#FFFFFF;}
+ .d2-1740979091 .stroke-B1{stroke:#0D32B2;}
+ .d2-1740979091 .stroke-B2{stroke:#0D32B2;}
+ .d2-1740979091 .stroke-B3{stroke:#E3E9FD;}
+ .d2-1740979091 .stroke-B4{stroke:#E3E9FD;}
+ .d2-1740979091 .stroke-B5{stroke:#EDF0FD;}
+ .d2-1740979091 .stroke-B6{stroke:#F7F8FE;}
+ .d2-1740979091 .stroke-AA2{stroke:#4A6FF3;}
+ .d2-1740979091 .stroke-AA4{stroke:#EDF0FD;}
+ .d2-1740979091 .stroke-AA5{stroke:#F7F8FE;}
+ .d2-1740979091 .stroke-AB4{stroke:#EDF0FD;}
+ .d2-1740979091 .stroke-AB5{stroke:#F7F8FE;}
+ .d2-1740979091 .background-color-N1{background-color:#0A0F25;}
+ .d2-1740979091 .background-color-N2{background-color:#676C7E;}
+ .d2-1740979091 .background-color-N3{background-color:#9499AB;}
+ .d2-1740979091 .background-color-N4{background-color:#CFD2DD;}
+ .d2-1740979091 .background-color-N5{background-color:#DEE1EB;}
+ .d2-1740979091 .background-color-N6{background-color:#EEF1F8;}
+ .d2-1740979091 .background-color-N7{background-color:#FFFFFF;}
+ .d2-1740979091 .background-color-B1{background-color:#0D32B2;}
+ .d2-1740979091 .background-color-B2{background-color:#0D32B2;}
+ .d2-1740979091 .background-color-B3{background-color:#E3E9FD;}
+ .d2-1740979091 .background-color-B4{background-color:#E3E9FD;}
+ .d2-1740979091 .background-color-B5{background-color:#EDF0FD;}
+ .d2-1740979091 .background-color-B6{background-color:#F7F8FE;}
+ .d2-1740979091 .background-color-AA2{background-color:#4A6FF3;}
+ .d2-1740979091 .background-color-AA4{background-color:#EDF0FD;}
+ .d2-1740979091 .background-color-AA5{background-color:#F7F8FE;}
+ .d2-1740979091 .background-color-AB4{background-color:#EDF0FD;}
+ .d2-1740979091 .background-color-AB5{background-color:#F7F8FE;}
+ .d2-1740979091 .color-N1{color:#0A0F25;}
+ .d2-1740979091 .color-N2{color:#676C7E;}
+ .d2-1740979091 .color-N3{color:#9499AB;}
+ .d2-1740979091 .color-N4{color:#CFD2DD;}
+ .d2-1740979091 .color-N5{color:#DEE1EB;}
+ .d2-1740979091 .color-N6{color:#EEF1F8;}
+ .d2-1740979091 .color-N7{color:#FFFFFF;}
+ .d2-1740979091 .color-B1{color:#0D32B2;}
+ .d2-1740979091 .color-B2{color:#0D32B2;}
+ .d2-1740979091 .color-B3{color:#E3E9FD;}
+ .d2-1740979091 .color-B4{color:#E3E9FD;}
+ .d2-1740979091 .color-B5{color:#EDF0FD;}
+ .d2-1740979091 .color-B6{color:#F7F8FE;}
+ .d2-1740979091 .color-AA2{color:#4A6FF3;}
+ .d2-1740979091 .color-AA4{color:#EDF0FD;}
+ .d2-1740979091 .color-AA5{color:#F7F8FE;}
+ .d2-1740979091 .color-AB4{color:#EDF0FD;}
+ .d2-1740979091 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>a b c d e f g h i j k l m n o p q r s t u v w
\ No newline at end of file
diff --git a/e2etests/testdata/stable/multiple_trees/elk/board.exp.json b/e2etests/testdata/stable/multiple_trees/elk/board.exp.json
index 982f12e00..06d7589dc 100644
--- a/e2etests/testdata/stable/multiple_trees/elk/board.exp.json
+++ b/e2etests/testdata/stable/multiple_trees/elk/board.exp.json
@@ -973,11 +973,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 344.2857142857143,
+ "x": 344.2850036621094,
"y": 360
},
{
- "x": 344.2857142857143,
+ "x": 344.2850036621094,
"y": 450
},
{
@@ -1019,11 +1019,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 378.57142857142856,
+ "x": 378.5710144042969,
"y": 360
},
{
- "x": 378.57142857142856,
+ "x": 378.5710144042969,
"y": 500
},
{
@@ -1065,11 +1065,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 412.8571428571429,
+ "x": 412.85699462890625,
"y": 360
},
{
- "x": 412.8571428571429,
+ "x": 412.85699462890625,
"y": 550
},
{
@@ -1111,11 +1111,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 447.1428571428571,
+ "x": 447.1419982910156,
"y": 360
},
{
- "x": 447.1428571428571,
+ "x": 447.1419982910156,
"y": 550
},
{
@@ -1157,11 +1157,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 481.42857142857144,
+ "x": 481.4280090332031,
"y": 360
},
{
- "x": 481.42857142857144,
+ "x": 481.4280090332031,
"y": 500
},
{
@@ -1241,11 +1241,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 515.7142857142857,
+ "x": 515.7139892578125,
"y": 360
},
{
- "x": 515.7142857142857,
+ "x": 515.7139892578125,
"y": 450
},
{
@@ -1387,11 +1387,11 @@
"y": 118
},
{
- "x": 443.3333333333333,
+ "x": 443.3330078125,
"y": 118
},
{
- "x": 443.3333333333333,
+ "x": 443.3330078125,
"y": 158
}
],
@@ -1433,11 +1433,11 @@
"y": 118
},
{
- "x": 416.6666666666667,
+ "x": 416.6659851074219,
"y": 118
},
{
- "x": 416.6666666666667,
+ "x": 416.6659851074219,
"y": 158
}
],
@@ -1471,11 +1471,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 195.91666666666663,
+ "x": 195.91600036621094,
"y": 656
},
{
- "x": 195.91666666666663,
+ "x": 195.91600036621094,
"y": 696
},
{
@@ -1517,11 +1517,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 222.58333333333331,
+ "x": 222.58299255371094,
"y": 656
},
{
- "x": 222.58333333333331,
+ "x": 222.58299255371094,
"y": 696
},
{
@@ -1563,11 +1563,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 343.6666666666667,
+ "x": 343.6659851074219,
"y": 656
},
{
- "x": 343.6666666666667,
+ "x": 343.6659851074219,
"y": 696
},
{
@@ -1609,11 +1609,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 370.3333333333333,
+ "x": 370.3330078125,
"y": 656
},
{
- "x": 370.3333333333333,
+ "x": 370.3330078125,
"y": 696
},
{
@@ -1655,11 +1655,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 490.16666666666663,
+ "x": 490.1659851074219,
"y": 656
},
{
- "x": 490.16666666666663,
+ "x": 490.1659851074219,
"y": 696
},
{
@@ -1701,11 +1701,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 516.8333333333334,
+ "x": 516.8330078125,
"y": 656
},
{
- "x": 516.8333333333334,
+ "x": 516.8330078125,
"y": 696
},
{
@@ -1785,11 +1785,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 633.6666666666666,
+ "x": 633.666015625,
"y": 656
},
{
- "x": 633.6666666666666,
+ "x": 633.666015625,
"y": 696
},
{
@@ -1831,11 +1831,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 660.3333333333334,
+ "x": 660.3330078125,
"y": 656
},
{
- "x": 660.3333333333334,
+ "x": 660.3330078125,
"y": 696
},
{
diff --git a/e2etests/testdata/stable/multiple_trees/elk/sketch.exp.svg b/e2etests/testdata/stable/multiple_trees/elk/sketch.exp.svg
index 0a7e9c235..ff6f374ed 100644
--- a/e2etests/testdata/stable/multiple_trees/elk/sketch.exp.svg
+++ b/e2etests/testdata/stable/multiple_trees/elk/sketch.exp.svg
@@ -1,10 +1,10 @@
-a b c d e f g h i j k l m n o p q r s t u v w
+ .d2-3732114288 .fill-N1{fill:#0A0F25;}
+ .d2-3732114288 .fill-N2{fill:#676C7E;}
+ .d2-3732114288 .fill-N3{fill:#9499AB;}
+ .d2-3732114288 .fill-N4{fill:#CFD2DD;}
+ .d2-3732114288 .fill-N5{fill:#DEE1EB;}
+ .d2-3732114288 .fill-N6{fill:#EEF1F8;}
+ .d2-3732114288 .fill-N7{fill:#FFFFFF;}
+ .d2-3732114288 .fill-B1{fill:#0D32B2;}
+ .d2-3732114288 .fill-B2{fill:#0D32B2;}
+ .d2-3732114288 .fill-B3{fill:#E3E9FD;}
+ .d2-3732114288 .fill-B4{fill:#E3E9FD;}
+ .d2-3732114288 .fill-B5{fill:#EDF0FD;}
+ .d2-3732114288 .fill-B6{fill:#F7F8FE;}
+ .d2-3732114288 .fill-AA2{fill:#4A6FF3;}
+ .d2-3732114288 .fill-AA4{fill:#EDF0FD;}
+ .d2-3732114288 .fill-AA5{fill:#F7F8FE;}
+ .d2-3732114288 .fill-AB4{fill:#EDF0FD;}
+ .d2-3732114288 .fill-AB5{fill:#F7F8FE;}
+ .d2-3732114288 .stroke-N1{stroke:#0A0F25;}
+ .d2-3732114288 .stroke-N2{stroke:#676C7E;}
+ .d2-3732114288 .stroke-N3{stroke:#9499AB;}
+ .d2-3732114288 .stroke-N4{stroke:#CFD2DD;}
+ .d2-3732114288 .stroke-N5{stroke:#DEE1EB;}
+ .d2-3732114288 .stroke-N6{stroke:#EEF1F8;}
+ .d2-3732114288 .stroke-N7{stroke:#FFFFFF;}
+ .d2-3732114288 .stroke-B1{stroke:#0D32B2;}
+ .d2-3732114288 .stroke-B2{stroke:#0D32B2;}
+ .d2-3732114288 .stroke-B3{stroke:#E3E9FD;}
+ .d2-3732114288 .stroke-B4{stroke:#E3E9FD;}
+ .d2-3732114288 .stroke-B5{stroke:#EDF0FD;}
+ .d2-3732114288 .stroke-B6{stroke:#F7F8FE;}
+ .d2-3732114288 .stroke-AA2{stroke:#4A6FF3;}
+ .d2-3732114288 .stroke-AA4{stroke:#EDF0FD;}
+ .d2-3732114288 .stroke-AA5{stroke:#F7F8FE;}
+ .d2-3732114288 .stroke-AB4{stroke:#EDF0FD;}
+ .d2-3732114288 .stroke-AB5{stroke:#F7F8FE;}
+ .d2-3732114288 .background-color-N1{background-color:#0A0F25;}
+ .d2-3732114288 .background-color-N2{background-color:#676C7E;}
+ .d2-3732114288 .background-color-N3{background-color:#9499AB;}
+ .d2-3732114288 .background-color-N4{background-color:#CFD2DD;}
+ .d2-3732114288 .background-color-N5{background-color:#DEE1EB;}
+ .d2-3732114288 .background-color-N6{background-color:#EEF1F8;}
+ .d2-3732114288 .background-color-N7{background-color:#FFFFFF;}
+ .d2-3732114288 .background-color-B1{background-color:#0D32B2;}
+ .d2-3732114288 .background-color-B2{background-color:#0D32B2;}
+ .d2-3732114288 .background-color-B3{background-color:#E3E9FD;}
+ .d2-3732114288 .background-color-B4{background-color:#E3E9FD;}
+ .d2-3732114288 .background-color-B5{background-color:#EDF0FD;}
+ .d2-3732114288 .background-color-B6{background-color:#F7F8FE;}
+ .d2-3732114288 .background-color-AA2{background-color:#4A6FF3;}
+ .d2-3732114288 .background-color-AA4{background-color:#EDF0FD;}
+ .d2-3732114288 .background-color-AA5{background-color:#F7F8FE;}
+ .d2-3732114288 .background-color-AB4{background-color:#EDF0FD;}
+ .d2-3732114288 .background-color-AB5{background-color:#F7F8FE;}
+ .d2-3732114288 .color-N1{color:#0A0F25;}
+ .d2-3732114288 .color-N2{color:#676C7E;}
+ .d2-3732114288 .color-N3{color:#9499AB;}
+ .d2-3732114288 .color-N4{color:#CFD2DD;}
+ .d2-3732114288 .color-N5{color:#DEE1EB;}
+ .d2-3732114288 .color-N6{color:#EEF1F8;}
+ .d2-3732114288 .color-N7{color:#FFFFFF;}
+ .d2-3732114288 .color-B1{color:#0D32B2;}
+ .d2-3732114288 .color-B2{color:#0D32B2;}
+ .d2-3732114288 .color-B3{color:#E3E9FD;}
+ .d2-3732114288 .color-B4{color:#E3E9FD;}
+ .d2-3732114288 .color-B5{color:#EDF0FD;}
+ .d2-3732114288 .color-B6{color:#F7F8FE;}
+ .d2-3732114288 .color-AA2{color:#4A6FF3;}
+ .d2-3732114288 .color-AA4{color:#EDF0FD;}
+ .d2-3732114288 .color-AA5{color:#F7F8FE;}
+ .d2-3732114288 .color-AB4{color:#EDF0FD;}
+ .d2-3732114288 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>a b c d e f g h i j k l m n o p q r s t u v w
\ No newline at end of file
diff --git a/e2etests/testdata/stable/n22_e32/dagre/board.exp.json b/e2etests/testdata/stable/n22_e32/dagre/board.exp.json
index 29e390fc2..f0d1e96f5 100644
--- a/e2etests/testdata/stable/n22_e32/dagre/board.exp.json
+++ b/e2etests/testdata/stable/n22_e32/dagre/board.exp.json
@@ -900,7 +900,7 @@
},
{
"x": 259.25,
- "y": 962.6
+ "y": 962.5999755859375
},
{
"x": 259.25,
@@ -908,10 +908,10 @@
},
{
"x": 259.25,
- "y": 1012.4
+ "y": 1012.4000244140625
},
{
- "x": 254.05,
+ "x": 254.0500030517578,
"y": 1122
},
{
@@ -959,7 +959,7 @@
},
{
"x": 279,
- "y": 464.6
+ "y": 464.6000061035156
},
{
"x": 279,
@@ -967,11 +967,11 @@
},
{
"x": 279,
- "y": 514.4
+ "y": 514.4000244140625
},
{
"x": 279,
- "y": 547.6
+ "y": 547.5999755859375
},
{
"x": 279,
@@ -979,11 +979,11 @@
},
{
"x": 279,
- "y": 597.4
+ "y": 597.4000244140625
},
{
"x": 279,
- "y": 630.6
+ "y": 630.5999755859375
},
{
"x": 279,
@@ -991,10 +991,10 @@
},
{
"x": 279,
- "y": 680.4
+ "y": 680.4000244140625
},
{
- "x": 276.6,
+ "x": 276.6000061035156,
"y": 790
},
{
@@ -1034,11 +1034,11 @@
"route": [
{
"x": 189.25,
- "y": 720.1627906976744
+ "y": 720.1619873046875
},
{
- "x": 245.05,
- "y": 768.0325581395349
+ "x": 245.0500030517578,
+ "y": 768.031982421875
},
{
"x": 259,
@@ -1089,7 +1089,7 @@
},
{
"x": 162.25,
- "y": 796.6
+ "y": 796.5999755859375
},
{
"x": 162.25,
@@ -1097,11 +1097,11 @@
},
{
"x": 162.25,
- "y": 846.4
+ "y": 846.4000244140625
},
{
"x": 162.25,
- "y": 879.6
+ "y": 879.5999755859375
},
{
"x": 162.25,
@@ -1109,11 +1109,11 @@
},
{
"x": 162.25,
- "y": 929.4
+ "y": 929.4000244140625
},
{
"x": 162.25,
- "y": 962.6
+ "y": 962.5999755859375
},
{
"x": 162.25,
@@ -1121,10 +1121,10 @@
},
{
"x": 162.25,
- "y": 1012.4
+ "y": 1012.4000244140625
},
{
- "x": 168.65,
+ "x": 168.64999389648438,
"y": 1122
},
{
@@ -1163,15 +1163,15 @@
"labelPercentage": 0,
"route": [
{
- "x": 139.6867469879518,
+ "x": 139.68600463867188,
"y": 730
},
{
- "x": 112.33734939759036,
+ "x": 112.33699798583984,
"y": 770
},
{
- "x": 101.1,
+ "x": 101.0999984741211,
"y": 790
},
{
@@ -1218,7 +1218,7 @@
"y": 936
},
{
- "x": 63.55,
+ "x": 63.54999923706055,
"y": 956
},
{
@@ -1265,8 +1265,8 @@
"y": 1102
},
{
- "x": 58.300000000000004,
- "y": 1126.2
+ "x": 58.29999923706055,
+ "y": 1126.199951171875
},
{
"x": 189.5,
@@ -1305,15 +1305,15 @@
"route": [
{
"x": 252.5,
- "y": 372.41196293176074
+ "y": 372.4110107421875
},
{
- "x": 36.29999999999998,
- "y": 432.8823925863521
+ "x": 36.29899978637695,
+ "y": 432.8819885253906
},
{
"x": -17.75,
- "y": 464.6
+ "y": 464.6000061035156
},
{
"x": -17.75,
@@ -1321,11 +1321,11 @@
},
{
"x": -17.75,
- "y": 514.4
+ "y": 514.4000244140625
},
{
"x": -17.75,
- "y": 547.6
+ "y": 547.5999755859375
},
{
"x": -17.75,
@@ -1333,11 +1333,11 @@
},
{
"x": -17.75,
- "y": 597.4
+ "y": 597.4000244140625
},
{
"x": -17.75,
- "y": 630.6
+ "y": 630.5999755859375
},
{
"x": -17.75,
@@ -1345,11 +1345,11 @@
},
{
"x": -17.75,
- "y": 680.4
+ "y": 680.4000244140625
},
{
"x": -17.75,
- "y": 713.6
+ "y": 713.5999755859375
},
{
"x": -17.75,
@@ -1357,11 +1357,11 @@
},
{
"x": -17.75,
- "y": 763.4
+ "y": 763.4000244140625
},
{
"x": -17.75,
- "y": 796.6
+ "y": 796.5999755859375
},
{
"x": -17.75,
@@ -1369,10 +1369,10 @@
},
{
"x": -17.75,
- "y": 846.4
+ "y": 846.4000244140625
},
{
- "x": -12.55,
+ "x": -12.550000190734863,
"y": 956
},
{
@@ -1412,15 +1412,15 @@
"route": [
{
"x": 186,
- "y": 51.675
+ "y": 51.67499923706055
},
{
- "x": 260.4,
- "y": 103.135
+ "x": 260.39898681640625,
+ "y": 103.13500213623047
},
{
"x": 279,
- "y": 132.6
+ "y": 132.60000610351562
},
{
"x": 279,
@@ -1428,7 +1428,7 @@
},
{
"x": 279,
- "y": 182.4
+ "y": 182.39999389648438
},
{
"x": 279,
@@ -1471,11 +1471,11 @@
"route": [
{
"x": 132,
- "y": 53.326530612244895
+ "y": 53.32600021362305
},
{
- "x": 65.39999999999999,
- "y": 103.46530612244898
+ "x": 65.39900207519531,
+ "y": 103.46499633789062
},
{
"x": 48.75,
@@ -1666,7 +1666,7 @@
"y": 770
},
{
- "x": 51.15,
+ "x": 51.150001525878906,
"y": 790
},
{
@@ -1706,15 +1706,15 @@
"route": [
{
"x": 23.75,
- "y": 554.9884393063584
+ "y": 554.9879760742188
},
{
- "x": -25.450000000000003,
- "y": 602.1976878612717
+ "x": -25.450000762939453,
+ "y": 602.197021484375
},
{
"x": -37.75,
- "y": 630.6
+ "y": 630.5999755859375
},
{
"x": -37.75,
@@ -1722,11 +1722,11 @@
},
{
"x": -37.75,
- "y": 680.4
+ "y": 680.4000244140625
},
{
"x": -37.75,
- "y": 713.6
+ "y": 713.5999755859375
},
{
"x": -37.75,
@@ -1734,11 +1734,11 @@
},
{
"x": -37.75,
- "y": 763.4
+ "y": 763.4000244140625
},
{
"x": -37.75,
- "y": 796.6
+ "y": 796.5999755859375
},
{
"x": -37.75,
@@ -1746,10 +1746,10 @@
},
{
"x": -37.75,
- "y": 846.4
+ "y": 846.4000244140625
},
{
- "x": -30.15,
+ "x": -30.149999618530273,
"y": 956
},
{
@@ -1797,7 +1797,7 @@
},
{
"x": 631.5,
- "y": 962.6
+ "y": 962.5999755859375
},
{
"x": 631.5,
@@ -1805,7 +1805,7 @@
},
{
"x": 631.5,
- "y": 1012.4
+ "y": 1012.4000244140625
},
{
"x": 626.5,
@@ -1847,15 +1847,15 @@
"labelPercentage": 0,
"route": [
{
- "x": 603.5481927710844,
+ "x": 603.5479736328125,
"y": 730
},
{
- "x": 633.9096385542168,
+ "x": 633.9089965820312,
"y": 770
},
{
- "x": 640.3,
+ "x": 640.2999877929688,
"y": 790
},
{
@@ -1894,15 +1894,15 @@
"labelPercentage": 0,
"route": [
{
- "x": 590.7259036144578,
+ "x": 590.7249755859375,
"y": 730
},
{
- "x": 605.5451807228916,
+ "x": 605.5449829101562,
"y": 770
},
{
- "x": 611.85,
+ "x": 611.8499755859375,
"y": 790
},
{
@@ -1941,16 +1941,16 @@
"labelPercentage": 0,
"route": [
{
- "x": 573.9277108433735,
+ "x": 573.927001953125,
"y": 730
},
{
- "x": 568.3855421686746,
+ "x": 568.385009765625,
"y": 770
},
{
"x": 567,
- "y": 796.6
+ "y": 796.5999755859375
},
{
"x": 567,
@@ -1958,11 +1958,11 @@
},
{
"x": 567,
- "y": 846.4
+ "y": 846.4000244140625
},
{
"x": 567,
- "y": 879.6
+ "y": 879.5999755859375
},
{
"x": 567,
@@ -1970,11 +1970,11 @@
},
{
"x": 567,
- "y": 929.4
+ "y": 929.4000244140625
},
{
"x": 567,
- "y": 962.6
+ "y": 962.5999755859375
},
{
"x": 567,
@@ -1982,10 +1982,10 @@
},
{
"x": 567,
- "y": 1012.4
+ "y": 1012.4000244140625
},
{
- "x": 569.8,
+ "x": 569.7999877929688,
"y": 1122
},
{
@@ -2024,15 +2024,15 @@
"labelPercentage": 0,
"route": [
{
- "x": 556.6325301204819,
+ "x": 556.6320190429688,
"y": 730
},
{
- "x": 530.1265060240963,
+ "x": 530.1259765625,
"y": 770
},
{
- "x": 520.7,
+ "x": 520.7000122070312,
"y": 790
},
{
@@ -2079,7 +2079,7 @@
"y": 936
},
{
- "x": 494.8,
+ "x": 494.79998779296875,
"y": 956
},
{
@@ -2126,7 +2126,7 @@
"y": 1102
},
{
- "x": 477.55,
+ "x": 477.54998779296875,
"y": 1125
},
{
@@ -2166,15 +2166,15 @@
"route": [
{
"x": 552,
- "y": 712.1168384879725
+ "y": 712.1160278320312
},
{
- "x": 456.8,
- "y": 766.4233676975945
+ "x": 456.79998779296875,
+ "y": 766.4229736328125
},
{
"x": 433,
- "y": 796.6
+ "y": 796.5999755859375
},
{
"x": 433,
@@ -2182,10 +2182,10 @@
},
{
"x": 433,
- "y": 846.4
+ "y": 846.4000244140625
},
{
- "x": 435.8,
+ "x": 435.79998779296875,
"y": 956
},
{
@@ -2224,16 +2224,16 @@
"labelPercentage": 0,
"route": [
{
- "x": 551.6927710843373,
+ "x": 551.6920166015625,
"y": 66
},
{
- "x": 573.1385542168674,
+ "x": 573.1380004882812,
"y": 106
},
{
"x": 578.5,
- "y": 132.6
+ "y": 132.60000610351562
},
{
"x": 578.5,
@@ -2241,11 +2241,11 @@
},
{
"x": 578.5,
- "y": 182.4
+ "y": 182.39999389648438
},
{
"x": 578.5,
- "y": 215.6
+ "y": 215.60000610351562
},
{
"x": 578.5,
@@ -2253,11 +2253,11 @@
},
{
"x": 578.5,
- "y": 265.4
+ "y": 265.3999938964844
},
{
"x": 578.5,
- "y": 298.6
+ "y": 298.6000061035156
},
{
"x": 578.5,
@@ -2265,11 +2265,11 @@
},
{
"x": 578.5,
- "y": 348.4
+ "y": 348.3999938964844
},
{
"x": 578.5,
- "y": 381.6
+ "y": 381.6000061035156
},
{
"x": 578.5,
@@ -2277,11 +2277,11 @@
},
{
"x": 578.5,
- "y": 431.4
+ "y": 431.3999938964844
},
{
"x": 578.5,
- "y": 464.6
+ "y": 464.6000061035156
},
{
"x": 578.5,
@@ -2289,7 +2289,7 @@
},
{
"x": 578.5,
- "y": 514.4
+ "y": 514.4000244140625
},
{
"x": 578.5,
@@ -2332,11 +2332,11 @@
"route": [
{
"x": 507,
- "y": 50.139579349904395
+ "y": 50.138999938964844
},
{
"x": 424,
- "y": 102.82791586998088
+ "y": 102.8270034790039
},
{
"x": 403.25,
@@ -2425,15 +2425,15 @@
"labelPercentage": 0,
"route": [
{
- "x": 424.62048192771084,
+ "x": 424.6199951171875,
"y": 398
},
{
- "x": 450.5240963855422,
+ "x": 450.52398681640625,
"y": 438
},
{
- "x": 450.6,
+ "x": 450.6000061035156,
"y": 458
},
{
@@ -2472,11 +2472,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 380.4879518072289,
+ "x": 380.48699951171875,
"y": 564
},
{
- "x": 352.8975903614458,
+ "x": 352.8970031738281,
"y": 604
},
{
@@ -2520,14 +2520,14 @@
"route": [
{
"x": 373,
- "y": 714.1724137931035
+ "y": 714.1719970703125
},
{
- "x": 455.8,
- "y": 766.8344827586207
+ "x": 455.79998779296875,
+ "y": 766.833984375
},
{
- "x": 479.3,
+ "x": 479.29998779296875,
"y": 790
},
{
@@ -2566,16 +2566,16 @@
"labelPercentage": 0,
"route": [
{
- "x": 407.1265060240964,
+ "x": 407.1260070800781,
"y": 564
},
{
- "x": 411.82530120481925,
+ "x": 411.82501220703125,
"y": 604
},
{
"x": 413,
- "y": 630.6
+ "y": 630.5999755859375
},
{
"x": 413,
@@ -2583,11 +2583,11 @@
},
{
"x": 413,
- "y": 680.4
+ "y": 680.4000244140625
},
{
"x": 413,
- "y": 713.6
+ "y": 713.5999755859375
},
{
"x": 413,
@@ -2595,11 +2595,11 @@
},
{
"x": 413,
- "y": 763.4
+ "y": 763.4000244140625
},
{
"x": 413,
- "y": 796.6
+ "y": 796.5999755859375
},
{
"x": 413,
@@ -2607,10 +2607,10 @@
},
{
"x": 413,
- "y": 846.4
+ "y": 846.4000244140625
},
{
- "x": 418.2,
+ "x": 418.20001220703125,
"y": 956
},
{
@@ -2649,20 +2649,20 @@
"labelPercentage": 0,
"route": [
{
- "x": 296.2951807228916,
+ "x": 296.2950134277344,
"y": 398
},
{
- "x": 317.2590361445783,
+ "x": 317.2590026855469,
"y": 438
},
{
- "x": 333.55,
- "y": 459.3578947368421
+ "x": 333.54998779296875,
+ "y": 459.35699462890625
},
{
"x": 377.75,
- "y": 504.7894736842105
+ "y": 504.78900146484375
}
],
"isCurve": true,
@@ -2697,15 +2697,15 @@
"route": [
{
"x": 377.25,
- "y": 378.13850837138506
+ "y": 378.13800048828125
},
{
- "x": 266.65,
- "y": 434.027701674277
+ "x": 266.6499938964844,
+ "y": 434.0270080566406
},
{
"x": 239,
- "y": 464.6
+ "y": 464.6000061035156
},
{
"x": 239,
@@ -2713,11 +2713,11 @@
},
{
"x": 239,
- "y": 514.4
+ "y": 514.4000244140625
},
{
"x": 239,
- "y": 547.6
+ "y": 547.5999755859375
},
{
"x": 239,
@@ -2725,11 +2725,11 @@
},
{
"x": 239,
- "y": 597.4
+ "y": 597.4000244140625
},
{
"x": 239,
- "y": 630.6
+ "y": 630.5999755859375
},
{
"x": 239,
@@ -2737,10 +2737,10 @@
},
{
"x": 239,
- "y": 680.4
+ "y": 680.4000244140625
},
{
- "x": 241.4,
+ "x": 241.39999389648438,
"y": 790
},
{
@@ -2780,14 +2780,14 @@
"route": [
{
"x": 319,
- "y": 712.9501779359431
+ "y": 712.9500122070312
},
{
- "x": 228.2,
- "y": 766.5900355871886
+ "x": 228.1999969482422,
+ "y": 766.5900268554688
},
{
- "x": 211.9,
+ "x": 211.89999389648438,
"y": 790
},
{
diff --git a/e2etests/testdata/stable/n22_e32/dagre/sketch.exp.svg b/e2etests/testdata/stable/n22_e32/dagre/sketch.exp.svg
index b12daab9d..a5b49a368 100644
--- a/e2etests/testdata/stable/n22_e32/dagre/sketch.exp.svg
+++ b/e2etests/testdata/stable/n22_e32/dagre/sketch.exp.svg
@@ -1,10 +1,10 @@
-a b c d e f g h i j k l m n o p q r s t u
+ .d2-557105542 .fill-N1{fill:#0A0F25;}
+ .d2-557105542 .fill-N2{fill:#676C7E;}
+ .d2-557105542 .fill-N3{fill:#9499AB;}
+ .d2-557105542 .fill-N4{fill:#CFD2DD;}
+ .d2-557105542 .fill-N5{fill:#DEE1EB;}
+ .d2-557105542 .fill-N6{fill:#EEF1F8;}
+ .d2-557105542 .fill-N7{fill:#FFFFFF;}
+ .d2-557105542 .fill-B1{fill:#0D32B2;}
+ .d2-557105542 .fill-B2{fill:#0D32B2;}
+ .d2-557105542 .fill-B3{fill:#E3E9FD;}
+ .d2-557105542 .fill-B4{fill:#E3E9FD;}
+ .d2-557105542 .fill-B5{fill:#EDF0FD;}
+ .d2-557105542 .fill-B6{fill:#F7F8FE;}
+ .d2-557105542 .fill-AA2{fill:#4A6FF3;}
+ .d2-557105542 .fill-AA4{fill:#EDF0FD;}
+ .d2-557105542 .fill-AA5{fill:#F7F8FE;}
+ .d2-557105542 .fill-AB4{fill:#EDF0FD;}
+ .d2-557105542 .fill-AB5{fill:#F7F8FE;}
+ .d2-557105542 .stroke-N1{stroke:#0A0F25;}
+ .d2-557105542 .stroke-N2{stroke:#676C7E;}
+ .d2-557105542 .stroke-N3{stroke:#9499AB;}
+ .d2-557105542 .stroke-N4{stroke:#CFD2DD;}
+ .d2-557105542 .stroke-N5{stroke:#DEE1EB;}
+ .d2-557105542 .stroke-N6{stroke:#EEF1F8;}
+ .d2-557105542 .stroke-N7{stroke:#FFFFFF;}
+ .d2-557105542 .stroke-B1{stroke:#0D32B2;}
+ .d2-557105542 .stroke-B2{stroke:#0D32B2;}
+ .d2-557105542 .stroke-B3{stroke:#E3E9FD;}
+ .d2-557105542 .stroke-B4{stroke:#E3E9FD;}
+ .d2-557105542 .stroke-B5{stroke:#EDF0FD;}
+ .d2-557105542 .stroke-B6{stroke:#F7F8FE;}
+ .d2-557105542 .stroke-AA2{stroke:#4A6FF3;}
+ .d2-557105542 .stroke-AA4{stroke:#EDF0FD;}
+ .d2-557105542 .stroke-AA5{stroke:#F7F8FE;}
+ .d2-557105542 .stroke-AB4{stroke:#EDF0FD;}
+ .d2-557105542 .stroke-AB5{stroke:#F7F8FE;}
+ .d2-557105542 .background-color-N1{background-color:#0A0F25;}
+ .d2-557105542 .background-color-N2{background-color:#676C7E;}
+ .d2-557105542 .background-color-N3{background-color:#9499AB;}
+ .d2-557105542 .background-color-N4{background-color:#CFD2DD;}
+ .d2-557105542 .background-color-N5{background-color:#DEE1EB;}
+ .d2-557105542 .background-color-N6{background-color:#EEF1F8;}
+ .d2-557105542 .background-color-N7{background-color:#FFFFFF;}
+ .d2-557105542 .background-color-B1{background-color:#0D32B2;}
+ .d2-557105542 .background-color-B2{background-color:#0D32B2;}
+ .d2-557105542 .background-color-B3{background-color:#E3E9FD;}
+ .d2-557105542 .background-color-B4{background-color:#E3E9FD;}
+ .d2-557105542 .background-color-B5{background-color:#EDF0FD;}
+ .d2-557105542 .background-color-B6{background-color:#F7F8FE;}
+ .d2-557105542 .background-color-AA2{background-color:#4A6FF3;}
+ .d2-557105542 .background-color-AA4{background-color:#EDF0FD;}
+ .d2-557105542 .background-color-AA5{background-color:#F7F8FE;}
+ .d2-557105542 .background-color-AB4{background-color:#EDF0FD;}
+ .d2-557105542 .background-color-AB5{background-color:#F7F8FE;}
+ .d2-557105542 .color-N1{color:#0A0F25;}
+ .d2-557105542 .color-N2{color:#676C7E;}
+ .d2-557105542 .color-N3{color:#9499AB;}
+ .d2-557105542 .color-N4{color:#CFD2DD;}
+ .d2-557105542 .color-N5{color:#DEE1EB;}
+ .d2-557105542 .color-N6{color:#EEF1F8;}
+ .d2-557105542 .color-N7{color:#FFFFFF;}
+ .d2-557105542 .color-B1{color:#0D32B2;}
+ .d2-557105542 .color-B2{color:#0D32B2;}
+ .d2-557105542 .color-B3{color:#E3E9FD;}
+ .d2-557105542 .color-B4{color:#E3E9FD;}
+ .d2-557105542 .color-B5{color:#EDF0FD;}
+ .d2-557105542 .color-B6{color:#F7F8FE;}
+ .d2-557105542 .color-AA2{color:#4A6FF3;}
+ .d2-557105542 .color-AA4{color:#EDF0FD;}
+ .d2-557105542 .color-AA5{color:#F7F8FE;}
+ .d2-557105542 .color-AB4{color:#EDF0FD;}
+ .d2-557105542 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>a b c d e f g h i j k l m n o p q r s t u
\ No newline at end of file
diff --git a/e2etests/testdata/stable/n22_e32/elk/board.exp.json b/e2etests/testdata/stable/n22_e32/elk/board.exp.json
index f6be8a4d6..fdd25bc6b 100644
--- a/e2etests/testdata/stable/n22_e32/elk/board.exp.json
+++ b/e2etests/testdata/stable/n22_e32/elk/board.exp.json
@@ -891,19 +891,19 @@
"labelPercentage": 0,
"route": [
{
- "x": 493.33333333333326,
+ "x": 493.3330078125,
"y": 948
},
{
- "x": 493.33333333333326,
+ "x": 493.3330078125,
"y": 1134
},
{
- "x": 583.3333333333333,
+ "x": 583.3330078125,
"y": 1134
},
{
- "x": 583.3333333333333,
+ "x": 583.3330078125,
"y": 1174
}
],
@@ -937,19 +937,19 @@
"labelPercentage": 0,
"route": [
{
- "x": 524.3333333333333,
+ "x": 524.3330078125,
"y": 360
},
{
- "x": 524.3333333333333,
+ "x": 524.3330078125,
"y": 500
},
{
- "x": 509.33333333333326,
+ "x": 509.3330078125,
"y": 500
},
{
- "x": 509.33333333333326,
+ "x": 509.3330078125,
"y": 882
}
],
@@ -983,19 +983,19 @@
"labelPercentage": 0,
"route": [
{
- "x": 583.3333333333333,
+ "x": 583.3330078125,
"y": 752
},
{
- "x": 583.3333333333333,
+ "x": 583.3330078125,
"y": 792
},
{
- "x": 541.3333333333333,
+ "x": 541.3330078125,
"y": 792
},
{
- "x": 541.3333333333333,
+ "x": 541.3330078125,
"y": 882
}
],
@@ -1029,11 +1029,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 613.3333333333333,
+ "x": 613.3330078125,
"y": 752
},
{
- "x": 613.3333333333333,
+ "x": 613.3330078125,
"y": 1174
}
],
@@ -1067,19 +1067,19 @@
"labelPercentage": 0,
"route": [
{
- "x": 643.3333333333333,
+ "x": 643.3330078125,
"y": 752
},
{
- "x": 643.3333333333333,
+ "x": 643.3330078125,
"y": 792
},
{
- "x": 693.1666666666666,
+ "x": 693.166015625,
"y": 792
},
{
- "x": 693.1666666666666,
+ "x": 693.166015625,
"y": 882
}
],
@@ -1121,11 +1121,11 @@
"y": 988
},
{
- "x": 756.4999999999999,
+ "x": 756.4990234375,
"y": 988
},
{
- "x": 756.4999999999999,
+ "x": 756.4990234375,
"y": 1028
}
],
@@ -1159,19 +1159,19 @@
"labelPercentage": 0,
"route": [
{
- "x": 786.4999999999999,
+ "x": 786.4990234375,
"y": 1094
},
{
- "x": 786.4999999999999,
+ "x": 786.4990234375,
"y": 1134
},
{
- "x": 643.3333333333333,
+ "x": 643.3330078125,
"y": 1134
},
{
- "x": 643.3333333333333,
+ "x": 643.3330078125,
"y": 1174
}
],
@@ -1205,19 +1205,19 @@
"labelPercentage": 0,
"route": [
{
- "x": 554.3333333333333,
+ "x": 554.3330078125,
"y": 360
},
{
- "x": 554.3333333333333,
+ "x": 554.3330078125,
"y": 400
},
{
- "x": 786.4999999999999,
+ "x": 786.4990234375,
"y": 400
},
{
- "x": 786.4999999999999,
+ "x": 786.4990234375,
"y": 1028
}
],
@@ -1251,19 +1251,19 @@
"labelPercentage": 0,
"route": [
{
- "x": 685.0833333333333,
+ "x": 685.0830078125,
"y": 78
},
{
- "x": 685.0833333333333,
+ "x": 685.0830078125,
"y": 118
},
{
- "x": 524.3333333333333,
+ "x": 524.3330078125,
"y": 118
},
{
- "x": 524.3333333333333,
+ "x": 524.3330078125,
"y": 294
}
],
@@ -1305,11 +1305,11 @@
"y": 118
},
{
- "x": 867.4999999999999,
+ "x": 867.4990234375,
"y": 118
},
{
- "x": 867.4999999999999,
+ "x": 867.4990234375,
"y": 158
}
],
@@ -1343,11 +1343,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 867.4999999999999,
+ "x": 867.4990234375,
"y": 224
},
{
- "x": 867.4999999999999,
+ "x": 867.4990234375,
"y": 294
}
],
@@ -1381,11 +1381,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 867.4999999999999,
+ "x": 867.4990234375,
"y": 360
},
{
- "x": 867.4999999999999,
+ "x": 867.4990234375,
"y": 540
}
],
@@ -1419,19 +1419,19 @@
"labelPercentage": 0,
"route": [
{
- "x": 854.1666666666666,
+ "x": 854.166015625,
"y": 606
},
{
- "x": 854.1666666666666,
+ "x": 854.166015625,
"y": 646
},
{
- "x": 719.8333333333333,
+ "x": 719.8330078125,
"y": 646
},
{
- "x": 719.8333333333333,
+ "x": 719.8330078125,
"y": 686
}
],
@@ -1465,11 +1465,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 719.8333333333333,
+ "x": 719.8330078125,
"y": 752
},
{
- "x": 719.8333333333333,
+ "x": 719.8330078125,
"y": 882
}
],
@@ -1503,19 +1503,19 @@
"labelPercentage": 0,
"route": [
{
- "x": 880.8333333333333,
+ "x": 880.8330078125,
"y": 606
},
{
- "x": 880.8333333333333,
+ "x": 880.8330078125,
"y": 988
},
{
- "x": 816.4999999999999,
+ "x": 816.4990234375,
"y": 988
},
{
- "x": 816.4999999999999,
+ "x": 816.4990234375,
"y": 1028
}
],
@@ -1557,11 +1557,11 @@
"y": 1134
},
{
- "x": 105.33333333333326,
+ "x": 105.33300018310547,
"y": 1134
},
{
- "x": 105.33333333333326,
+ "x": 105.33300018310547,
"y": 1174
}
],
@@ -1595,11 +1595,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 38.66666666666663,
+ "x": 38.66600036621094,
"y": 752
},
{
- "x": 38.66666666666663,
+ "x": 38.66600036621094,
"y": 882
}
],
@@ -1633,11 +1633,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 65.33333333333337,
+ "x": 65.33300018310547,
"y": 752
},
{
- "x": 65.33333333333337,
+ "x": 65.33300018310547,
"y": 882
}
],
@@ -1717,19 +1717,19 @@
"labelPercentage": 0,
"route": [
{
- "x": 188.66666666666663,
+ "x": 188.66600036621094,
"y": 752
},
{
- "x": 188.66666666666663,
+ "x": 188.66600036621094,
"y": 792
},
{
- "x": 222.9999999999999,
+ "x": 222.99899291992188,
"y": 792
},
{
- "x": 222.9999999999999,
+ "x": 222.99899291992188,
"y": 882
}
],
@@ -1809,11 +1809,11 @@
"y": 1134
},
{
- "x": 165.33333333333326,
+ "x": 165.33299255371094,
"y": 1134
},
{
- "x": 165.33333333333326,
+ "x": 165.33299255371094,
"y": 1174
}
],
@@ -1847,11 +1847,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 150.83333333333326,
+ "x": 150.83299255371094,
"y": 752
},
{
- "x": 150.83333333333326,
+ "x": 150.83299255371094,
"y": 988
},
{
@@ -1893,11 +1893,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 243.9999999999999,
+ "x": 243.99899291992188,
"y": 78
},
{
- "x": 243.9999999999999,
+ "x": 243.99899291992188,
"y": 118
},
{
@@ -1939,11 +1939,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 270.66666666666663,
+ "x": 270.6659851074219,
"y": 78
},
{
- "x": 270.66666666666663,
+ "x": 270.6659851074219,
"y": 118
},
{
@@ -2023,19 +2023,19 @@
"labelPercentage": 0,
"route": [
{
- "x": 366.6666666666667,
+ "x": 366.6659851074219,
"y": 360
},
{
- "x": 366.6666666666667,
+ "x": 366.6659851074219,
"y": 400
},
{
- "x": 341.8333333333333,
+ "x": 341.8330078125,
"y": 400
},
{
- "x": 341.8333333333333,
+ "x": 341.8330078125,
"y": 540
}
],
@@ -2069,11 +2069,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 368.49999999999994,
+ "x": 368.4989929199219,
"y": 606
},
{
- "x": 368.49999999999994,
+ "x": 368.4989929199219,
"y": 686
}
],
@@ -2107,19 +2107,19 @@
"labelPercentage": 0,
"route": [
{
- "x": 383.99999999999994,
+ "x": 383.9989929199219,
"y": 752
},
{
- "x": 383.99999999999994,
+ "x": 383.9989929199219,
"y": 792
},
{
- "x": 249.66666666666663,
+ "x": 249.66600036621094,
"y": 792
},
{
- "x": 249.66666666666663,
+ "x": 249.66600036621094,
"y": 882
}
],
@@ -2153,19 +2153,19 @@
"labelPercentage": 0,
"route": [
{
- "x": 341.8333333333333,
+ "x": 341.8330078125,
"y": 606
},
{
- "x": 341.8333333333333,
+ "x": 341.8330078125,
"y": 646
},
{
- "x": 316.33333333333326,
+ "x": 316.3330078125,
"y": 646
},
{
- "x": 316.33333333333326,
+ "x": 316.3330078125,
"y": 988
},
{
@@ -2207,19 +2207,19 @@
"labelPercentage": 0,
"route": [
{
- "x": 494.3333333333333,
+ "x": 494.3330078125,
"y": 360
},
{
- "x": 494.3333333333333,
+ "x": 494.3330078125,
"y": 450
},
{
- "x": 368.49999999999994,
+ "x": 368.4989929199219,
"y": 450
},
{
- "x": 368.49999999999994,
+ "x": 368.4989929199219,
"y": 540
}
],
@@ -2253,19 +2253,19 @@
"labelPercentage": 0,
"route": [
{
- "x": 393.3333333333333,
+ "x": 393.3330078125,
"y": 360
},
{
- "x": 393.3333333333333,
+ "x": 393.3330078125,
"y": 500
},
{
- "x": 477.33333333333326,
+ "x": 477.3330078125,
"y": 500
},
{
- "x": 477.33333333333326,
+ "x": 477.3330078125,
"y": 882
}
],
@@ -2299,19 +2299,19 @@
"labelPercentage": 0,
"route": [
{
- "x": 410.6666666666666,
+ "x": 410.6659851074219,
"y": 752
},
{
- "x": 410.6666666666666,
+ "x": 410.6659851074219,
"y": 792
},
{
- "x": 445.33333333333326,
+ "x": 445.3330078125,
"y": 792
},
{
- "x": 445.33333333333326,
+ "x": 445.3330078125,
"y": 882
}
],
diff --git a/e2etests/testdata/stable/n22_e32/elk/sketch.exp.svg b/e2etests/testdata/stable/n22_e32/elk/sketch.exp.svg
index 9ca611a20..5893a6f9a 100644
--- a/e2etests/testdata/stable/n22_e32/elk/sketch.exp.svg
+++ b/e2etests/testdata/stable/n22_e32/elk/sketch.exp.svg
@@ -1,10 +1,10 @@
-a b c d e f g h i j k l m n o p q r s t u
+ .d2-348891009 .fill-N1{fill:#0A0F25;}
+ .d2-348891009 .fill-N2{fill:#676C7E;}
+ .d2-348891009 .fill-N3{fill:#9499AB;}
+ .d2-348891009 .fill-N4{fill:#CFD2DD;}
+ .d2-348891009 .fill-N5{fill:#DEE1EB;}
+ .d2-348891009 .fill-N6{fill:#EEF1F8;}
+ .d2-348891009 .fill-N7{fill:#FFFFFF;}
+ .d2-348891009 .fill-B1{fill:#0D32B2;}
+ .d2-348891009 .fill-B2{fill:#0D32B2;}
+ .d2-348891009 .fill-B3{fill:#E3E9FD;}
+ .d2-348891009 .fill-B4{fill:#E3E9FD;}
+ .d2-348891009 .fill-B5{fill:#EDF0FD;}
+ .d2-348891009 .fill-B6{fill:#F7F8FE;}
+ .d2-348891009 .fill-AA2{fill:#4A6FF3;}
+ .d2-348891009 .fill-AA4{fill:#EDF0FD;}
+ .d2-348891009 .fill-AA5{fill:#F7F8FE;}
+ .d2-348891009 .fill-AB4{fill:#EDF0FD;}
+ .d2-348891009 .fill-AB5{fill:#F7F8FE;}
+ .d2-348891009 .stroke-N1{stroke:#0A0F25;}
+ .d2-348891009 .stroke-N2{stroke:#676C7E;}
+ .d2-348891009 .stroke-N3{stroke:#9499AB;}
+ .d2-348891009 .stroke-N4{stroke:#CFD2DD;}
+ .d2-348891009 .stroke-N5{stroke:#DEE1EB;}
+ .d2-348891009 .stroke-N6{stroke:#EEF1F8;}
+ .d2-348891009 .stroke-N7{stroke:#FFFFFF;}
+ .d2-348891009 .stroke-B1{stroke:#0D32B2;}
+ .d2-348891009 .stroke-B2{stroke:#0D32B2;}
+ .d2-348891009 .stroke-B3{stroke:#E3E9FD;}
+ .d2-348891009 .stroke-B4{stroke:#E3E9FD;}
+ .d2-348891009 .stroke-B5{stroke:#EDF0FD;}
+ .d2-348891009 .stroke-B6{stroke:#F7F8FE;}
+ .d2-348891009 .stroke-AA2{stroke:#4A6FF3;}
+ .d2-348891009 .stroke-AA4{stroke:#EDF0FD;}
+ .d2-348891009 .stroke-AA5{stroke:#F7F8FE;}
+ .d2-348891009 .stroke-AB4{stroke:#EDF0FD;}
+ .d2-348891009 .stroke-AB5{stroke:#F7F8FE;}
+ .d2-348891009 .background-color-N1{background-color:#0A0F25;}
+ .d2-348891009 .background-color-N2{background-color:#676C7E;}
+ .d2-348891009 .background-color-N3{background-color:#9499AB;}
+ .d2-348891009 .background-color-N4{background-color:#CFD2DD;}
+ .d2-348891009 .background-color-N5{background-color:#DEE1EB;}
+ .d2-348891009 .background-color-N6{background-color:#EEF1F8;}
+ .d2-348891009 .background-color-N7{background-color:#FFFFFF;}
+ .d2-348891009 .background-color-B1{background-color:#0D32B2;}
+ .d2-348891009 .background-color-B2{background-color:#0D32B2;}
+ .d2-348891009 .background-color-B3{background-color:#E3E9FD;}
+ .d2-348891009 .background-color-B4{background-color:#E3E9FD;}
+ .d2-348891009 .background-color-B5{background-color:#EDF0FD;}
+ .d2-348891009 .background-color-B6{background-color:#F7F8FE;}
+ .d2-348891009 .background-color-AA2{background-color:#4A6FF3;}
+ .d2-348891009 .background-color-AA4{background-color:#EDF0FD;}
+ .d2-348891009 .background-color-AA5{background-color:#F7F8FE;}
+ .d2-348891009 .background-color-AB4{background-color:#EDF0FD;}
+ .d2-348891009 .background-color-AB5{background-color:#F7F8FE;}
+ .d2-348891009 .color-N1{color:#0A0F25;}
+ .d2-348891009 .color-N2{color:#676C7E;}
+ .d2-348891009 .color-N3{color:#9499AB;}
+ .d2-348891009 .color-N4{color:#CFD2DD;}
+ .d2-348891009 .color-N5{color:#DEE1EB;}
+ .d2-348891009 .color-N6{color:#EEF1F8;}
+ .d2-348891009 .color-N7{color:#FFFFFF;}
+ .d2-348891009 .color-B1{color:#0D32B2;}
+ .d2-348891009 .color-B2{color:#0D32B2;}
+ .d2-348891009 .color-B3{color:#E3E9FD;}
+ .d2-348891009 .color-B4{color:#E3E9FD;}
+ .d2-348891009 .color-B5{color:#EDF0FD;}
+ .d2-348891009 .color-B6{color:#F7F8FE;}
+ .d2-348891009 .color-AA2{color:#4A6FF3;}
+ .d2-348891009 .color-AA4{color:#EDF0FD;}
+ .d2-348891009 .color-AA5{color:#F7F8FE;}
+ .d2-348891009 .color-AB4{color:#EDF0FD;}
+ .d2-348891009 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>a b c d e f g h i j k l m n o p q r s t u
\ No newline at end of file
diff --git a/e2etests/testdata/stable/near-alone/dagre/sketch.exp.svg b/e2etests/testdata/stable/near-alone/dagre/sketch.exp.svg
index 7b1fa4246..3f5ddb469 100644
--- a/e2etests/testdata/stable/near-alone/dagre/sketch.exp.svg
+++ b/e2etests/testdata/stable/near-alone/dagre/sketch.exp.svg
@@ -1,10 +1,10 @@
-a c d e f g b h
-
+ .d2-3388298709 .fill-N1{fill:#0A0F25;}
+ .d2-3388298709 .fill-N2{fill:#676C7E;}
+ .d2-3388298709 .fill-N3{fill:#9499AB;}
+ .d2-3388298709 .fill-N4{fill:#CFD2DD;}
+ .d2-3388298709 .fill-N5{fill:#DEE1EB;}
+ .d2-3388298709 .fill-N6{fill:#EEF1F8;}
+ .d2-3388298709 .fill-N7{fill:#FFFFFF;}
+ .d2-3388298709 .fill-B1{fill:#0D32B2;}
+ .d2-3388298709 .fill-B2{fill:#0D32B2;}
+ .d2-3388298709 .fill-B3{fill:#E3E9FD;}
+ .d2-3388298709 .fill-B4{fill:#E3E9FD;}
+ .d2-3388298709 .fill-B5{fill:#EDF0FD;}
+ .d2-3388298709 .fill-B6{fill:#F7F8FE;}
+ .d2-3388298709 .fill-AA2{fill:#4A6FF3;}
+ .d2-3388298709 .fill-AA4{fill:#EDF0FD;}
+ .d2-3388298709 .fill-AA5{fill:#F7F8FE;}
+ .d2-3388298709 .fill-AB4{fill:#EDF0FD;}
+ .d2-3388298709 .fill-AB5{fill:#F7F8FE;}
+ .d2-3388298709 .stroke-N1{stroke:#0A0F25;}
+ .d2-3388298709 .stroke-N2{stroke:#676C7E;}
+ .d2-3388298709 .stroke-N3{stroke:#9499AB;}
+ .d2-3388298709 .stroke-N4{stroke:#CFD2DD;}
+ .d2-3388298709 .stroke-N5{stroke:#DEE1EB;}
+ .d2-3388298709 .stroke-N6{stroke:#EEF1F8;}
+ .d2-3388298709 .stroke-N7{stroke:#FFFFFF;}
+ .d2-3388298709 .stroke-B1{stroke:#0D32B2;}
+ .d2-3388298709 .stroke-B2{stroke:#0D32B2;}
+ .d2-3388298709 .stroke-B3{stroke:#E3E9FD;}
+ .d2-3388298709 .stroke-B4{stroke:#E3E9FD;}
+ .d2-3388298709 .stroke-B5{stroke:#EDF0FD;}
+ .d2-3388298709 .stroke-B6{stroke:#F7F8FE;}
+ .d2-3388298709 .stroke-AA2{stroke:#4A6FF3;}
+ .d2-3388298709 .stroke-AA4{stroke:#EDF0FD;}
+ .d2-3388298709 .stroke-AA5{stroke:#F7F8FE;}
+ .d2-3388298709 .stroke-AB4{stroke:#EDF0FD;}
+ .d2-3388298709 .stroke-AB5{stroke:#F7F8FE;}
+ .d2-3388298709 .background-color-N1{background-color:#0A0F25;}
+ .d2-3388298709 .background-color-N2{background-color:#676C7E;}
+ .d2-3388298709 .background-color-N3{background-color:#9499AB;}
+ .d2-3388298709 .background-color-N4{background-color:#CFD2DD;}
+ .d2-3388298709 .background-color-N5{background-color:#DEE1EB;}
+ .d2-3388298709 .background-color-N6{background-color:#EEF1F8;}
+ .d2-3388298709 .background-color-N7{background-color:#FFFFFF;}
+ .d2-3388298709 .background-color-B1{background-color:#0D32B2;}
+ .d2-3388298709 .background-color-B2{background-color:#0D32B2;}
+ .d2-3388298709 .background-color-B3{background-color:#E3E9FD;}
+ .d2-3388298709 .background-color-B4{background-color:#E3E9FD;}
+ .d2-3388298709 .background-color-B5{background-color:#EDF0FD;}
+ .d2-3388298709 .background-color-B6{background-color:#F7F8FE;}
+ .d2-3388298709 .background-color-AA2{background-color:#4A6FF3;}
+ .d2-3388298709 .background-color-AA4{background-color:#EDF0FD;}
+ .d2-3388298709 .background-color-AA5{background-color:#F7F8FE;}
+ .d2-3388298709 .background-color-AB4{background-color:#EDF0FD;}
+ .d2-3388298709 .background-color-AB5{background-color:#F7F8FE;}
+ .d2-3388298709 .color-N1{color:#0A0F25;}
+ .d2-3388298709 .color-N2{color:#676C7E;}
+ .d2-3388298709 .color-N3{color:#9499AB;}
+ .d2-3388298709 .color-N4{color:#CFD2DD;}
+ .d2-3388298709 .color-N5{color:#DEE1EB;}
+ .d2-3388298709 .color-N6{color:#EEF1F8;}
+ .d2-3388298709 .color-N7{color:#FFFFFF;}
+ .d2-3388298709 .color-B1{color:#0D32B2;}
+ .d2-3388298709 .color-B2{color:#0D32B2;}
+ .d2-3388298709 .color-B3{color:#E3E9FD;}
+ .d2-3388298709 .color-B4{color:#E3E9FD;}
+ .d2-3388298709 .color-B5{color:#EDF0FD;}
+ .d2-3388298709 .color-B6{color:#F7F8FE;}
+ .d2-3388298709 .color-AA2{color:#4A6FF3;}
+ .d2-3388298709 .color-AA4{color:#EDF0FD;}
+ .d2-3388298709 .color-AA5{color:#F7F8FE;}
+ .d2-3388298709 .color-AB4{color:#EDF0FD;}
+ .d2-3388298709 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>a c d e f g b h
+
\ No newline at end of file
diff --git a/e2etests/testdata/stable/one_container_loop/elk/sketch.exp.svg b/e2etests/testdata/stable/one_container_loop/elk/sketch.exp.svg
index 189dded7a..a99901731 100644
--- a/e2etests/testdata/stable/one_container_loop/elk/sketch.exp.svg
+++ b/e2etests/testdata/stable/one_container_loop/elk/sketch.exp.svg
@@ -1,17 +1,17 @@
-top2 a b c bottom start end
+ .d2-617499013 .fill-N1{fill:#0A0F25;}
+ .d2-617499013 .fill-N2{fill:#676C7E;}
+ .d2-617499013 .fill-N3{fill:#9499AB;}
+ .d2-617499013 .fill-N4{fill:#CFD2DD;}
+ .d2-617499013 .fill-N5{fill:#DEE1EB;}
+ .d2-617499013 .fill-N6{fill:#EEF1F8;}
+ .d2-617499013 .fill-N7{fill:#FFFFFF;}
+ .d2-617499013 .fill-B1{fill:#0D32B2;}
+ .d2-617499013 .fill-B2{fill:#0D32B2;}
+ .d2-617499013 .fill-B3{fill:#E3E9FD;}
+ .d2-617499013 .fill-B4{fill:#E3E9FD;}
+ .d2-617499013 .fill-B5{fill:#EDF0FD;}
+ .d2-617499013 .fill-B6{fill:#F7F8FE;}
+ .d2-617499013 .fill-AA2{fill:#4A6FF3;}
+ .d2-617499013 .fill-AA4{fill:#EDF0FD;}
+ .d2-617499013 .fill-AA5{fill:#F7F8FE;}
+ .d2-617499013 .fill-AB4{fill:#EDF0FD;}
+ .d2-617499013 .fill-AB5{fill:#F7F8FE;}
+ .d2-617499013 .stroke-N1{stroke:#0A0F25;}
+ .d2-617499013 .stroke-N2{stroke:#676C7E;}
+ .d2-617499013 .stroke-N3{stroke:#9499AB;}
+ .d2-617499013 .stroke-N4{stroke:#CFD2DD;}
+ .d2-617499013 .stroke-N5{stroke:#DEE1EB;}
+ .d2-617499013 .stroke-N6{stroke:#EEF1F8;}
+ .d2-617499013 .stroke-N7{stroke:#FFFFFF;}
+ .d2-617499013 .stroke-B1{stroke:#0D32B2;}
+ .d2-617499013 .stroke-B2{stroke:#0D32B2;}
+ .d2-617499013 .stroke-B3{stroke:#E3E9FD;}
+ .d2-617499013 .stroke-B4{stroke:#E3E9FD;}
+ .d2-617499013 .stroke-B5{stroke:#EDF0FD;}
+ .d2-617499013 .stroke-B6{stroke:#F7F8FE;}
+ .d2-617499013 .stroke-AA2{stroke:#4A6FF3;}
+ .d2-617499013 .stroke-AA4{stroke:#EDF0FD;}
+ .d2-617499013 .stroke-AA5{stroke:#F7F8FE;}
+ .d2-617499013 .stroke-AB4{stroke:#EDF0FD;}
+ .d2-617499013 .stroke-AB5{stroke:#F7F8FE;}
+ .d2-617499013 .background-color-N1{background-color:#0A0F25;}
+ .d2-617499013 .background-color-N2{background-color:#676C7E;}
+ .d2-617499013 .background-color-N3{background-color:#9499AB;}
+ .d2-617499013 .background-color-N4{background-color:#CFD2DD;}
+ .d2-617499013 .background-color-N5{background-color:#DEE1EB;}
+ .d2-617499013 .background-color-N6{background-color:#EEF1F8;}
+ .d2-617499013 .background-color-N7{background-color:#FFFFFF;}
+ .d2-617499013 .background-color-B1{background-color:#0D32B2;}
+ .d2-617499013 .background-color-B2{background-color:#0D32B2;}
+ .d2-617499013 .background-color-B3{background-color:#E3E9FD;}
+ .d2-617499013 .background-color-B4{background-color:#E3E9FD;}
+ .d2-617499013 .background-color-B5{background-color:#EDF0FD;}
+ .d2-617499013 .background-color-B6{background-color:#F7F8FE;}
+ .d2-617499013 .background-color-AA2{background-color:#4A6FF3;}
+ .d2-617499013 .background-color-AA4{background-color:#EDF0FD;}
+ .d2-617499013 .background-color-AA5{background-color:#F7F8FE;}
+ .d2-617499013 .background-color-AB4{background-color:#EDF0FD;}
+ .d2-617499013 .background-color-AB5{background-color:#F7F8FE;}
+ .d2-617499013 .color-N1{color:#0A0F25;}
+ .d2-617499013 .color-N2{color:#676C7E;}
+ .d2-617499013 .color-N3{color:#9499AB;}
+ .d2-617499013 .color-N4{color:#CFD2DD;}
+ .d2-617499013 .color-N5{color:#DEE1EB;}
+ .d2-617499013 .color-N6{color:#EEF1F8;}
+ .d2-617499013 .color-N7{color:#FFFFFF;}
+ .d2-617499013 .color-B1{color:#0D32B2;}
+ .d2-617499013 .color-B2{color:#0D32B2;}
+ .d2-617499013 .color-B3{color:#E3E9FD;}
+ .d2-617499013 .color-B4{color:#E3E9FD;}
+ .d2-617499013 .color-B5{color:#EDF0FD;}
+ .d2-617499013 .color-B6{color:#F7F8FE;}
+ .d2-617499013 .color-AA2{color:#4A6FF3;}
+ .d2-617499013 .color-AA4{color:#EDF0FD;}
+ .d2-617499013 .color-AA5{color:#F7F8FE;}
+ .d2-617499013 .color-AB4{color:#EDF0FD;}
+ .d2-617499013 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>top2 a b c bottom start end
\ No newline at end of file
diff --git a/e2etests/testdata/stable/one_three_one_container/elk/sketch.exp.svg b/e2etests/testdata/stable/one_three_one_container/elk/sketch.exp.svg
index ce2e9ab5e..8095ee718 100644
--- a/e2etests/testdata/stable/one_three_one_container/elk/sketch.exp.svg
+++ b/e2etests/testdata/stable/one_three_one_container/elk/sketch.exp.svg
@@ -1,17 +1,17 @@
-root container root left2 right root inner root inner left2 right left2 right to inner left2 to inner right to inner left2 to inner right to left2 container root to right container root
+ .d2-4162872463 .fill-N1{fill:#0A0F25;}
+ .d2-4162872463 .fill-N2{fill:#676C7E;}
+ .d2-4162872463 .fill-N3{fill:#9499AB;}
+ .d2-4162872463 .fill-N4{fill:#CFD2DD;}
+ .d2-4162872463 .fill-N5{fill:#DEE1EB;}
+ .d2-4162872463 .fill-N6{fill:#EEF1F8;}
+ .d2-4162872463 .fill-N7{fill:#FFFFFF;}
+ .d2-4162872463 .fill-B1{fill:#0D32B2;}
+ .d2-4162872463 .fill-B2{fill:#0D32B2;}
+ .d2-4162872463 .fill-B3{fill:#E3E9FD;}
+ .d2-4162872463 .fill-B4{fill:#E3E9FD;}
+ .d2-4162872463 .fill-B5{fill:#EDF0FD;}
+ .d2-4162872463 .fill-B6{fill:#F7F8FE;}
+ .d2-4162872463 .fill-AA2{fill:#4A6FF3;}
+ .d2-4162872463 .fill-AA4{fill:#EDF0FD;}
+ .d2-4162872463 .fill-AA5{fill:#F7F8FE;}
+ .d2-4162872463 .fill-AB4{fill:#EDF0FD;}
+ .d2-4162872463 .fill-AB5{fill:#F7F8FE;}
+ .d2-4162872463 .stroke-N1{stroke:#0A0F25;}
+ .d2-4162872463 .stroke-N2{stroke:#676C7E;}
+ .d2-4162872463 .stroke-N3{stroke:#9499AB;}
+ .d2-4162872463 .stroke-N4{stroke:#CFD2DD;}
+ .d2-4162872463 .stroke-N5{stroke:#DEE1EB;}
+ .d2-4162872463 .stroke-N6{stroke:#EEF1F8;}
+ .d2-4162872463 .stroke-N7{stroke:#FFFFFF;}
+ .d2-4162872463 .stroke-B1{stroke:#0D32B2;}
+ .d2-4162872463 .stroke-B2{stroke:#0D32B2;}
+ .d2-4162872463 .stroke-B3{stroke:#E3E9FD;}
+ .d2-4162872463 .stroke-B4{stroke:#E3E9FD;}
+ .d2-4162872463 .stroke-B5{stroke:#EDF0FD;}
+ .d2-4162872463 .stroke-B6{stroke:#F7F8FE;}
+ .d2-4162872463 .stroke-AA2{stroke:#4A6FF3;}
+ .d2-4162872463 .stroke-AA4{stroke:#EDF0FD;}
+ .d2-4162872463 .stroke-AA5{stroke:#F7F8FE;}
+ .d2-4162872463 .stroke-AB4{stroke:#EDF0FD;}
+ .d2-4162872463 .stroke-AB5{stroke:#F7F8FE;}
+ .d2-4162872463 .background-color-N1{background-color:#0A0F25;}
+ .d2-4162872463 .background-color-N2{background-color:#676C7E;}
+ .d2-4162872463 .background-color-N3{background-color:#9499AB;}
+ .d2-4162872463 .background-color-N4{background-color:#CFD2DD;}
+ .d2-4162872463 .background-color-N5{background-color:#DEE1EB;}
+ .d2-4162872463 .background-color-N6{background-color:#EEF1F8;}
+ .d2-4162872463 .background-color-N7{background-color:#FFFFFF;}
+ .d2-4162872463 .background-color-B1{background-color:#0D32B2;}
+ .d2-4162872463 .background-color-B2{background-color:#0D32B2;}
+ .d2-4162872463 .background-color-B3{background-color:#E3E9FD;}
+ .d2-4162872463 .background-color-B4{background-color:#E3E9FD;}
+ .d2-4162872463 .background-color-B5{background-color:#EDF0FD;}
+ .d2-4162872463 .background-color-B6{background-color:#F7F8FE;}
+ .d2-4162872463 .background-color-AA2{background-color:#4A6FF3;}
+ .d2-4162872463 .background-color-AA4{background-color:#EDF0FD;}
+ .d2-4162872463 .background-color-AA5{background-color:#F7F8FE;}
+ .d2-4162872463 .background-color-AB4{background-color:#EDF0FD;}
+ .d2-4162872463 .background-color-AB5{background-color:#F7F8FE;}
+ .d2-4162872463 .color-N1{color:#0A0F25;}
+ .d2-4162872463 .color-N2{color:#676C7E;}
+ .d2-4162872463 .color-N3{color:#9499AB;}
+ .d2-4162872463 .color-N4{color:#CFD2DD;}
+ .d2-4162872463 .color-N5{color:#DEE1EB;}
+ .d2-4162872463 .color-N6{color:#EEF1F8;}
+ .d2-4162872463 .color-N7{color:#FFFFFF;}
+ .d2-4162872463 .color-B1{color:#0D32B2;}
+ .d2-4162872463 .color-B2{color:#0D32B2;}
+ .d2-4162872463 .color-B3{color:#E3E9FD;}
+ .d2-4162872463 .color-B4{color:#E3E9FD;}
+ .d2-4162872463 .color-B5{color:#EDF0FD;}
+ .d2-4162872463 .color-B6{color:#F7F8FE;}
+ .d2-4162872463 .color-AA2{color:#4A6FF3;}
+ .d2-4162872463 .color-AA4{color:#EDF0FD;}
+ .d2-4162872463 .color-AA5{color:#F7F8FE;}
+ .d2-4162872463 .color-AB4{color:#EDF0FD;}
+ .d2-4162872463 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>root container root left2 right root inner root inner left2 right left2 right to inner left2 to inner right to inner left2 to inner right to left2 container root to right container root
diff --git a/e2etests/testdata/stable/overlapping_image_container_labels/elk/board.exp.json b/e2etests/testdata/stable/overlapping_image_container_labels/elk/board.exp.json
index e02ff2a4f..96f60f080 100644
--- a/e2etests/testdata/stable/overlapping_image_container_labels/elk/board.exp.json
+++ b/e2etests/testdata/stable/overlapping_image_container_labels/elk/board.exp.json
@@ -697,11 +697,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 278.6666666666667,
+ "x": 278.6659851074219,
"y": 825
},
{
- "x": 278.6666666666667,
+ "x": 278.6659851074219,
"y": 865
},
{
@@ -743,11 +743,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 321.33333333333337,
+ "x": 321.3330078125,
"y": 825
},
{
- "x": 321.33333333333337,
+ "x": 321.3330078125,
"y": 865
},
{
@@ -789,11 +789,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 774.6666666666667,
+ "x": 774.666015625,
"y": 825
},
{
- "x": 774.6666666666667,
+ "x": 774.666015625,
"y": 865
},
{
@@ -835,11 +835,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 817.3333333333334,
+ "x": 817.3330078125,
"y": 825
},
{
- "x": 817.3333333333334,
+ "x": 817.3330078125,
"y": 865
},
{
@@ -881,11 +881,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 526.6666666666667,
+ "x": 526.666015625,
"y": 445
},
{
- "x": 526.6666666666667,
+ "x": 526.666015625,
"y": 485
},
{
@@ -927,11 +927,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 569.3333333333334,
+ "x": 569.3330078125,
"y": 445
},
{
- "x": 569.3333333333334,
+ "x": 569.3330078125,
"y": 485
},
{
diff --git a/e2etests/testdata/stable/overlapping_image_container_labels/elk/sketch.exp.svg b/e2etests/testdata/stable/overlapping_image_container_labels/elk/sketch.exp.svg
index e99c55734..3713ac815 100644
--- a/e2etests/testdata/stable/overlapping_image_container_labels/elk/sketch.exp.svg
+++ b/e2etests/testdata/stable/overlapping_image_container_labels/elk/sketch.exp.svg
@@ -1,24 +1,24 @@
-root container root left2 right root inner root inner left2 right left2 right to inner left2 to inner right to inner left2 to inner right to left2 container root to right container root
+ .d2-2322694762 .fill-N1{fill:#0A0F25;}
+ .d2-2322694762 .fill-N2{fill:#676C7E;}
+ .d2-2322694762 .fill-N3{fill:#9499AB;}
+ .d2-2322694762 .fill-N4{fill:#CFD2DD;}
+ .d2-2322694762 .fill-N5{fill:#DEE1EB;}
+ .d2-2322694762 .fill-N6{fill:#EEF1F8;}
+ .d2-2322694762 .fill-N7{fill:#FFFFFF;}
+ .d2-2322694762 .fill-B1{fill:#0D32B2;}
+ .d2-2322694762 .fill-B2{fill:#0D32B2;}
+ .d2-2322694762 .fill-B3{fill:#E3E9FD;}
+ .d2-2322694762 .fill-B4{fill:#E3E9FD;}
+ .d2-2322694762 .fill-B5{fill:#EDF0FD;}
+ .d2-2322694762 .fill-B6{fill:#F7F8FE;}
+ .d2-2322694762 .fill-AA2{fill:#4A6FF3;}
+ .d2-2322694762 .fill-AA4{fill:#EDF0FD;}
+ .d2-2322694762 .fill-AA5{fill:#F7F8FE;}
+ .d2-2322694762 .fill-AB4{fill:#EDF0FD;}
+ .d2-2322694762 .fill-AB5{fill:#F7F8FE;}
+ .d2-2322694762 .stroke-N1{stroke:#0A0F25;}
+ .d2-2322694762 .stroke-N2{stroke:#676C7E;}
+ .d2-2322694762 .stroke-N3{stroke:#9499AB;}
+ .d2-2322694762 .stroke-N4{stroke:#CFD2DD;}
+ .d2-2322694762 .stroke-N5{stroke:#DEE1EB;}
+ .d2-2322694762 .stroke-N6{stroke:#EEF1F8;}
+ .d2-2322694762 .stroke-N7{stroke:#FFFFFF;}
+ .d2-2322694762 .stroke-B1{stroke:#0D32B2;}
+ .d2-2322694762 .stroke-B2{stroke:#0D32B2;}
+ .d2-2322694762 .stroke-B3{stroke:#E3E9FD;}
+ .d2-2322694762 .stroke-B4{stroke:#E3E9FD;}
+ .d2-2322694762 .stroke-B5{stroke:#EDF0FD;}
+ .d2-2322694762 .stroke-B6{stroke:#F7F8FE;}
+ .d2-2322694762 .stroke-AA2{stroke:#4A6FF3;}
+ .d2-2322694762 .stroke-AA4{stroke:#EDF0FD;}
+ .d2-2322694762 .stroke-AA5{stroke:#F7F8FE;}
+ .d2-2322694762 .stroke-AB4{stroke:#EDF0FD;}
+ .d2-2322694762 .stroke-AB5{stroke:#F7F8FE;}
+ .d2-2322694762 .background-color-N1{background-color:#0A0F25;}
+ .d2-2322694762 .background-color-N2{background-color:#676C7E;}
+ .d2-2322694762 .background-color-N3{background-color:#9499AB;}
+ .d2-2322694762 .background-color-N4{background-color:#CFD2DD;}
+ .d2-2322694762 .background-color-N5{background-color:#DEE1EB;}
+ .d2-2322694762 .background-color-N6{background-color:#EEF1F8;}
+ .d2-2322694762 .background-color-N7{background-color:#FFFFFF;}
+ .d2-2322694762 .background-color-B1{background-color:#0D32B2;}
+ .d2-2322694762 .background-color-B2{background-color:#0D32B2;}
+ .d2-2322694762 .background-color-B3{background-color:#E3E9FD;}
+ .d2-2322694762 .background-color-B4{background-color:#E3E9FD;}
+ .d2-2322694762 .background-color-B5{background-color:#EDF0FD;}
+ .d2-2322694762 .background-color-B6{background-color:#F7F8FE;}
+ .d2-2322694762 .background-color-AA2{background-color:#4A6FF3;}
+ .d2-2322694762 .background-color-AA4{background-color:#EDF0FD;}
+ .d2-2322694762 .background-color-AA5{background-color:#F7F8FE;}
+ .d2-2322694762 .background-color-AB4{background-color:#EDF0FD;}
+ .d2-2322694762 .background-color-AB5{background-color:#F7F8FE;}
+ .d2-2322694762 .color-N1{color:#0A0F25;}
+ .d2-2322694762 .color-N2{color:#676C7E;}
+ .d2-2322694762 .color-N3{color:#9499AB;}
+ .d2-2322694762 .color-N4{color:#CFD2DD;}
+ .d2-2322694762 .color-N5{color:#DEE1EB;}
+ .d2-2322694762 .color-N6{color:#EEF1F8;}
+ .d2-2322694762 .color-N7{color:#FFFFFF;}
+ .d2-2322694762 .color-B1{color:#0D32B2;}
+ .d2-2322694762 .color-B2{color:#0D32B2;}
+ .d2-2322694762 .color-B3{color:#E3E9FD;}
+ .d2-2322694762 .color-B4{color:#E3E9FD;}
+ .d2-2322694762 .color-B5{color:#EDF0FD;}
+ .d2-2322694762 .color-B6{color:#F7F8FE;}
+ .d2-2322694762 .color-AA2{color:#4A6FF3;}
+ .d2-2322694762 .color-AA4{color:#EDF0FD;}
+ .d2-2322694762 .color-AA5{color:#F7F8FE;}
+ .d2-2322694762 .color-AB4{color:#EDF0FD;}
+ .d2-2322694762 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>root container root left2 right root inner root inner left2 right left2 right to inner left2 to inner right to inner left2 to inner right to left2 container root to right container root
diff --git a/e2etests/testdata/stable/p/dagre/sketch.exp.svg b/e2etests/testdata/stable/p/dagre/sketch.exp.svg
index 094f93303..9c2bc597d 100644
--- a/e2etests/testdata/stable/p/dagre/sketch.exp.svg
+++ b/e2etests/testdata/stable/p/dagre/sketch.exp.svg
@@ -1,21 +1,21 @@
-x y z hello
+ .d2-2366172572 .fill-N1{fill:#0A0F25;}
+ .d2-2366172572 .fill-N2{fill:#676C7E;}
+ .d2-2366172572 .fill-N3{fill:#9499AB;}
+ .d2-2366172572 .fill-N4{fill:#CFD2DD;}
+ .d2-2366172572 .fill-N5{fill:#DEE1EB;}
+ .d2-2366172572 .fill-N6{fill:#EEF1F8;}
+ .d2-2366172572 .fill-N7{fill:#FFFFFF;}
+ .d2-2366172572 .fill-B1{fill:#0D32B2;}
+ .d2-2366172572 .fill-B2{fill:#0D32B2;}
+ .d2-2366172572 .fill-B3{fill:#E3E9FD;}
+ .d2-2366172572 .fill-B4{fill:#E3E9FD;}
+ .d2-2366172572 .fill-B5{fill:#EDF0FD;}
+ .d2-2366172572 .fill-B6{fill:#F7F8FE;}
+ .d2-2366172572 .fill-AA2{fill:#4A6FF3;}
+ .d2-2366172572 .fill-AA4{fill:#EDF0FD;}
+ .d2-2366172572 .fill-AA5{fill:#F7F8FE;}
+ .d2-2366172572 .fill-AB4{fill:#EDF0FD;}
+ .d2-2366172572 .fill-AB5{fill:#F7F8FE;}
+ .d2-2366172572 .stroke-N1{stroke:#0A0F25;}
+ .d2-2366172572 .stroke-N2{stroke:#676C7E;}
+ .d2-2366172572 .stroke-N3{stroke:#9499AB;}
+ .d2-2366172572 .stroke-N4{stroke:#CFD2DD;}
+ .d2-2366172572 .stroke-N5{stroke:#DEE1EB;}
+ .d2-2366172572 .stroke-N6{stroke:#EEF1F8;}
+ .d2-2366172572 .stroke-N7{stroke:#FFFFFF;}
+ .d2-2366172572 .stroke-B1{stroke:#0D32B2;}
+ .d2-2366172572 .stroke-B2{stroke:#0D32B2;}
+ .d2-2366172572 .stroke-B3{stroke:#E3E9FD;}
+ .d2-2366172572 .stroke-B4{stroke:#E3E9FD;}
+ .d2-2366172572 .stroke-B5{stroke:#EDF0FD;}
+ .d2-2366172572 .stroke-B6{stroke:#F7F8FE;}
+ .d2-2366172572 .stroke-AA2{stroke:#4A6FF3;}
+ .d2-2366172572 .stroke-AA4{stroke:#EDF0FD;}
+ .d2-2366172572 .stroke-AA5{stroke:#F7F8FE;}
+ .d2-2366172572 .stroke-AB4{stroke:#EDF0FD;}
+ .d2-2366172572 .stroke-AB5{stroke:#F7F8FE;}
+ .d2-2366172572 .background-color-N1{background-color:#0A0F25;}
+ .d2-2366172572 .background-color-N2{background-color:#676C7E;}
+ .d2-2366172572 .background-color-N3{background-color:#9499AB;}
+ .d2-2366172572 .background-color-N4{background-color:#CFD2DD;}
+ .d2-2366172572 .background-color-N5{background-color:#DEE1EB;}
+ .d2-2366172572 .background-color-N6{background-color:#EEF1F8;}
+ .d2-2366172572 .background-color-N7{background-color:#FFFFFF;}
+ .d2-2366172572 .background-color-B1{background-color:#0D32B2;}
+ .d2-2366172572 .background-color-B2{background-color:#0D32B2;}
+ .d2-2366172572 .background-color-B3{background-color:#E3E9FD;}
+ .d2-2366172572 .background-color-B4{background-color:#E3E9FD;}
+ .d2-2366172572 .background-color-B5{background-color:#EDF0FD;}
+ .d2-2366172572 .background-color-B6{background-color:#F7F8FE;}
+ .d2-2366172572 .background-color-AA2{background-color:#4A6FF3;}
+ .d2-2366172572 .background-color-AA4{background-color:#EDF0FD;}
+ .d2-2366172572 .background-color-AA5{background-color:#F7F8FE;}
+ .d2-2366172572 .background-color-AB4{background-color:#EDF0FD;}
+ .d2-2366172572 .background-color-AB5{background-color:#F7F8FE;}
+ .d2-2366172572 .color-N1{color:#0A0F25;}
+ .d2-2366172572 .color-N2{color:#676C7E;}
+ .d2-2366172572 .color-N3{color:#9499AB;}
+ .d2-2366172572 .color-N4{color:#CFD2DD;}
+ .d2-2366172572 .color-N5{color:#DEE1EB;}
+ .d2-2366172572 .color-N6{color:#EEF1F8;}
+ .d2-2366172572 .color-N7{color:#FFFFFF;}
+ .d2-2366172572 .color-B1{color:#0D32B2;}
+ .d2-2366172572 .color-B2{color:#0D32B2;}
+ .d2-2366172572 .color-B3{color:#E3E9FD;}
+ .d2-2366172572 .color-B4{color:#E3E9FD;}
+ .d2-2366172572 .color-B5{color:#EDF0FD;}
+ .d2-2366172572 .color-B6{color:#F7F8FE;}
+ .d2-2366172572 .color-AA2{color:#4A6FF3;}
+ .d2-2366172572 .color-AA4{color:#EDF0FD;}
+ .d2-2366172572 .color-AA5{color:#F7F8FE;}
+ .d2-2366172572 .color-AB4{color:#EDF0FD;}
+ .d2-2366172572 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>x y z hello
\ No newline at end of file
diff --git a/e2etests/testdata/stable/self-referencing/elk/board.exp.json b/e2etests/testdata/stable/self-referencing/elk/board.exp.json
index 82b4208b8..91abeece7 100644
--- a/e2etests/testdata/stable/self-referencing/elk/board.exp.json
+++ b/e2etests/testdata/stable/self-referencing/elk/board.exp.json
@@ -253,11 +253,11 @@
"y": 118
},
{
- "x": 236.16666666666663,
+ "x": 236.16600036621094,
"y": 118
},
{
- "x": 236.16666666666663,
+ "x": 236.16600036621094,
"y": 158
}
],
@@ -299,11 +299,11 @@
"y": 118
},
{
- "x": 262.8333333333333,
+ "x": 262.8330078125,
"y": 118
},
{
- "x": 262.8333333333333,
+ "x": 262.8330078125,
"y": 158
}
],
diff --git a/e2etests/testdata/stable/self-referencing/elk/sketch.exp.svg b/e2etests/testdata/stable/self-referencing/elk/sketch.exp.svg
index 74cce882c..e366e9def 100644
--- a/e2etests/testdata/stable/self-referencing/elk/sketch.exp.svg
+++ b/e2etests/testdata/stable/self-referencing/elk/sketch.exp.svg
@@ -1,17 +1,17 @@
-x y z hello
+ .d2-3276573818 .fill-N1{fill:#0A0F25;}
+ .d2-3276573818 .fill-N2{fill:#676C7E;}
+ .d2-3276573818 .fill-N3{fill:#9499AB;}
+ .d2-3276573818 .fill-N4{fill:#CFD2DD;}
+ .d2-3276573818 .fill-N5{fill:#DEE1EB;}
+ .d2-3276573818 .fill-N6{fill:#EEF1F8;}
+ .d2-3276573818 .fill-N7{fill:#FFFFFF;}
+ .d2-3276573818 .fill-B1{fill:#0D32B2;}
+ .d2-3276573818 .fill-B2{fill:#0D32B2;}
+ .d2-3276573818 .fill-B3{fill:#E3E9FD;}
+ .d2-3276573818 .fill-B4{fill:#E3E9FD;}
+ .d2-3276573818 .fill-B5{fill:#EDF0FD;}
+ .d2-3276573818 .fill-B6{fill:#F7F8FE;}
+ .d2-3276573818 .fill-AA2{fill:#4A6FF3;}
+ .d2-3276573818 .fill-AA4{fill:#EDF0FD;}
+ .d2-3276573818 .fill-AA5{fill:#F7F8FE;}
+ .d2-3276573818 .fill-AB4{fill:#EDF0FD;}
+ .d2-3276573818 .fill-AB5{fill:#F7F8FE;}
+ .d2-3276573818 .stroke-N1{stroke:#0A0F25;}
+ .d2-3276573818 .stroke-N2{stroke:#676C7E;}
+ .d2-3276573818 .stroke-N3{stroke:#9499AB;}
+ .d2-3276573818 .stroke-N4{stroke:#CFD2DD;}
+ .d2-3276573818 .stroke-N5{stroke:#DEE1EB;}
+ .d2-3276573818 .stroke-N6{stroke:#EEF1F8;}
+ .d2-3276573818 .stroke-N7{stroke:#FFFFFF;}
+ .d2-3276573818 .stroke-B1{stroke:#0D32B2;}
+ .d2-3276573818 .stroke-B2{stroke:#0D32B2;}
+ .d2-3276573818 .stroke-B3{stroke:#E3E9FD;}
+ .d2-3276573818 .stroke-B4{stroke:#E3E9FD;}
+ .d2-3276573818 .stroke-B5{stroke:#EDF0FD;}
+ .d2-3276573818 .stroke-B6{stroke:#F7F8FE;}
+ .d2-3276573818 .stroke-AA2{stroke:#4A6FF3;}
+ .d2-3276573818 .stroke-AA4{stroke:#EDF0FD;}
+ .d2-3276573818 .stroke-AA5{stroke:#F7F8FE;}
+ .d2-3276573818 .stroke-AB4{stroke:#EDF0FD;}
+ .d2-3276573818 .stroke-AB5{stroke:#F7F8FE;}
+ .d2-3276573818 .background-color-N1{background-color:#0A0F25;}
+ .d2-3276573818 .background-color-N2{background-color:#676C7E;}
+ .d2-3276573818 .background-color-N3{background-color:#9499AB;}
+ .d2-3276573818 .background-color-N4{background-color:#CFD2DD;}
+ .d2-3276573818 .background-color-N5{background-color:#DEE1EB;}
+ .d2-3276573818 .background-color-N6{background-color:#EEF1F8;}
+ .d2-3276573818 .background-color-N7{background-color:#FFFFFF;}
+ .d2-3276573818 .background-color-B1{background-color:#0D32B2;}
+ .d2-3276573818 .background-color-B2{background-color:#0D32B2;}
+ .d2-3276573818 .background-color-B3{background-color:#E3E9FD;}
+ .d2-3276573818 .background-color-B4{background-color:#E3E9FD;}
+ .d2-3276573818 .background-color-B5{background-color:#EDF0FD;}
+ .d2-3276573818 .background-color-B6{background-color:#F7F8FE;}
+ .d2-3276573818 .background-color-AA2{background-color:#4A6FF3;}
+ .d2-3276573818 .background-color-AA4{background-color:#EDF0FD;}
+ .d2-3276573818 .background-color-AA5{background-color:#F7F8FE;}
+ .d2-3276573818 .background-color-AB4{background-color:#EDF0FD;}
+ .d2-3276573818 .background-color-AB5{background-color:#F7F8FE;}
+ .d2-3276573818 .color-N1{color:#0A0F25;}
+ .d2-3276573818 .color-N2{color:#676C7E;}
+ .d2-3276573818 .color-N3{color:#9499AB;}
+ .d2-3276573818 .color-N4{color:#CFD2DD;}
+ .d2-3276573818 .color-N5{color:#DEE1EB;}
+ .d2-3276573818 .color-N6{color:#EEF1F8;}
+ .d2-3276573818 .color-N7{color:#FFFFFF;}
+ .d2-3276573818 .color-B1{color:#0D32B2;}
+ .d2-3276573818 .color-B2{color:#0D32B2;}
+ .d2-3276573818 .color-B3{color:#E3E9FD;}
+ .d2-3276573818 .color-B4{color:#E3E9FD;}
+ .d2-3276573818 .color-B5{color:#EDF0FD;}
+ .d2-3276573818 .color-B6{color:#F7F8FE;}
+ .d2-3276573818 .color-AA2{color:#4A6FF3;}
+ .d2-3276573818 .color-AA4{color:#EDF0FD;}
+ .d2-3276573818 .color-AA5{color:#F7F8FE;}
+ .d2-3276573818 .color-AB4{color:#EDF0FD;}
+ .d2-3276573818 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>x y z hello
\ No newline at end of file
diff --git a/e2etests/testdata/stable/sequence-inter-span-self/dagre/sketch.exp.svg b/e2etests/testdata/stable/sequence-inter-span-self/dagre/sketch.exp.svg
index 1fb12b159..cc9cbc822 100644
--- a/e2etests/testdata/stable/sequence-inter-span-self/dagre/sketch.exp.svg
+++ b/e2etests/testdata/stable/sequence-inter-span-self/dagre/sketch.exp.svg
@@ -1,17 +1,17 @@
-a_shape a_sequence another sequence finally scorer itemResponse item essayRubric concept itemOutcome sequence sequence scorer itemResponse item essayRubric concept itemOutcome scorer concept essayRubric item itemOutcome itemResponse getItem() item getRubric() rubric applyTo(essayResp) match(essayResponse) score new getNormalMinimum() getNormalMaximum() setScore(score) setFeedback(missingConcepts) getItem() item getRubric() rubric applyTo(essayResp) match(essayResponse) score new getNormalMinimum() getNormalMaximum() setScore(score) setFeedback(missingConcepts)
+ .d2-3661036670 .fill-N1{fill:#0A0F25;}
+ .d2-3661036670 .fill-N2{fill:#676C7E;}
+ .d2-3661036670 .fill-N3{fill:#9499AB;}
+ .d2-3661036670 .fill-N4{fill:#CFD2DD;}
+ .d2-3661036670 .fill-N5{fill:#DEE1EB;}
+ .d2-3661036670 .fill-N6{fill:#EEF1F8;}
+ .d2-3661036670 .fill-N7{fill:#FFFFFF;}
+ .d2-3661036670 .fill-B1{fill:#0D32B2;}
+ .d2-3661036670 .fill-B2{fill:#0D32B2;}
+ .d2-3661036670 .fill-B3{fill:#E3E9FD;}
+ .d2-3661036670 .fill-B4{fill:#E3E9FD;}
+ .d2-3661036670 .fill-B5{fill:#EDF0FD;}
+ .d2-3661036670 .fill-B6{fill:#F7F8FE;}
+ .d2-3661036670 .fill-AA2{fill:#4A6FF3;}
+ .d2-3661036670 .fill-AA4{fill:#EDF0FD;}
+ .d2-3661036670 .fill-AA5{fill:#F7F8FE;}
+ .d2-3661036670 .fill-AB4{fill:#EDF0FD;}
+ .d2-3661036670 .fill-AB5{fill:#F7F8FE;}
+ .d2-3661036670 .stroke-N1{stroke:#0A0F25;}
+ .d2-3661036670 .stroke-N2{stroke:#676C7E;}
+ .d2-3661036670 .stroke-N3{stroke:#9499AB;}
+ .d2-3661036670 .stroke-N4{stroke:#CFD2DD;}
+ .d2-3661036670 .stroke-N5{stroke:#DEE1EB;}
+ .d2-3661036670 .stroke-N6{stroke:#EEF1F8;}
+ .d2-3661036670 .stroke-N7{stroke:#FFFFFF;}
+ .d2-3661036670 .stroke-B1{stroke:#0D32B2;}
+ .d2-3661036670 .stroke-B2{stroke:#0D32B2;}
+ .d2-3661036670 .stroke-B3{stroke:#E3E9FD;}
+ .d2-3661036670 .stroke-B4{stroke:#E3E9FD;}
+ .d2-3661036670 .stroke-B5{stroke:#EDF0FD;}
+ .d2-3661036670 .stroke-B6{stroke:#F7F8FE;}
+ .d2-3661036670 .stroke-AA2{stroke:#4A6FF3;}
+ .d2-3661036670 .stroke-AA4{stroke:#EDF0FD;}
+ .d2-3661036670 .stroke-AA5{stroke:#F7F8FE;}
+ .d2-3661036670 .stroke-AB4{stroke:#EDF0FD;}
+ .d2-3661036670 .stroke-AB5{stroke:#F7F8FE;}
+ .d2-3661036670 .background-color-N1{background-color:#0A0F25;}
+ .d2-3661036670 .background-color-N2{background-color:#676C7E;}
+ .d2-3661036670 .background-color-N3{background-color:#9499AB;}
+ .d2-3661036670 .background-color-N4{background-color:#CFD2DD;}
+ .d2-3661036670 .background-color-N5{background-color:#DEE1EB;}
+ .d2-3661036670 .background-color-N6{background-color:#EEF1F8;}
+ .d2-3661036670 .background-color-N7{background-color:#FFFFFF;}
+ .d2-3661036670 .background-color-B1{background-color:#0D32B2;}
+ .d2-3661036670 .background-color-B2{background-color:#0D32B2;}
+ .d2-3661036670 .background-color-B3{background-color:#E3E9FD;}
+ .d2-3661036670 .background-color-B4{background-color:#E3E9FD;}
+ .d2-3661036670 .background-color-B5{background-color:#EDF0FD;}
+ .d2-3661036670 .background-color-B6{background-color:#F7F8FE;}
+ .d2-3661036670 .background-color-AA2{background-color:#4A6FF3;}
+ .d2-3661036670 .background-color-AA4{background-color:#EDF0FD;}
+ .d2-3661036670 .background-color-AA5{background-color:#F7F8FE;}
+ .d2-3661036670 .background-color-AB4{background-color:#EDF0FD;}
+ .d2-3661036670 .background-color-AB5{background-color:#F7F8FE;}
+ .d2-3661036670 .color-N1{color:#0A0F25;}
+ .d2-3661036670 .color-N2{color:#676C7E;}
+ .d2-3661036670 .color-N3{color:#9499AB;}
+ .d2-3661036670 .color-N4{color:#CFD2DD;}
+ .d2-3661036670 .color-N5{color:#DEE1EB;}
+ .d2-3661036670 .color-N6{color:#EEF1F8;}
+ .d2-3661036670 .color-N7{color:#FFFFFF;}
+ .d2-3661036670 .color-B1{color:#0D32B2;}
+ .d2-3661036670 .color-B2{color:#0D32B2;}
+ .d2-3661036670 .color-B3{color:#E3E9FD;}
+ .d2-3661036670 .color-B4{color:#E3E9FD;}
+ .d2-3661036670 .color-B5{color:#EDF0FD;}
+ .d2-3661036670 .color-B6{color:#F7F8FE;}
+ .d2-3661036670 .color-AA2{color:#4A6FF3;}
+ .d2-3661036670 .color-AA4{color:#EDF0FD;}
+ .d2-3661036670 .color-AA5{color:#F7F8FE;}
+ .d2-3661036670 .color-AB4{color:#EDF0FD;}
+ .d2-3661036670 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>a_shape a_sequence another sequence finally scorer itemResponse item essayRubric concept itemOutcome sequence sequence scorer itemResponse item essayRubric concept itemOutcome scorer concept essayRubric item itemOutcome itemResponse getItem() item getRubric() rubric applyTo(essayResp) match(essayResponse) score new getNormalMinimum() getNormalMaximum() setScore(score) setFeedback(missingConcepts) getItem() item getRubric() rubric applyTo(essayResp) match(essayResponse) score new getNormalMinimum() getNormalMaximum() setScore(score) setFeedback(missingConcepts)
diff --git a/e2etests/testdata/stable/sequence_diagrams/elk/sketch.exp.svg b/e2etests/testdata/stable/sequence_diagrams/elk/sketch.exp.svg
index 016c4ea4b..681bab423 100644
--- a/e2etests/testdata/stable/sequence_diagrams/elk/sketch.exp.svg
+++ b/e2etests/testdata/stable/sequence_diagrams/elk/sketch.exp.svg
@@ -1,24 +1,24 @@
-users id int name string email string password string last_login datetime PK products id int price decimal sku string name string orders id int user_id int product_id int shipments id int order_id int tracking_number string status string
+ .d2-2753448778 .fill-N1{fill:#0A0F25;}
+ .d2-2753448778 .fill-N2{fill:#676C7E;}
+ .d2-2753448778 .fill-N3{fill:#9499AB;}
+ .d2-2753448778 .fill-N4{fill:#CFD2DD;}
+ .d2-2753448778 .fill-N5{fill:#DEE1EB;}
+ .d2-2753448778 .fill-N6{fill:#EEF1F8;}
+ .d2-2753448778 .fill-N7{fill:#FFFFFF;}
+ .d2-2753448778 .fill-B1{fill:#0D32B2;}
+ .d2-2753448778 .fill-B2{fill:#0D32B2;}
+ .d2-2753448778 .fill-B3{fill:#E3E9FD;}
+ .d2-2753448778 .fill-B4{fill:#E3E9FD;}
+ .d2-2753448778 .fill-B5{fill:#EDF0FD;}
+ .d2-2753448778 .fill-B6{fill:#F7F8FE;}
+ .d2-2753448778 .fill-AA2{fill:#4A6FF3;}
+ .d2-2753448778 .fill-AA4{fill:#EDF0FD;}
+ .d2-2753448778 .fill-AA5{fill:#F7F8FE;}
+ .d2-2753448778 .fill-AB4{fill:#EDF0FD;}
+ .d2-2753448778 .fill-AB5{fill:#F7F8FE;}
+ .d2-2753448778 .stroke-N1{stroke:#0A0F25;}
+ .d2-2753448778 .stroke-N2{stroke:#676C7E;}
+ .d2-2753448778 .stroke-N3{stroke:#9499AB;}
+ .d2-2753448778 .stroke-N4{stroke:#CFD2DD;}
+ .d2-2753448778 .stroke-N5{stroke:#DEE1EB;}
+ .d2-2753448778 .stroke-N6{stroke:#EEF1F8;}
+ .d2-2753448778 .stroke-N7{stroke:#FFFFFF;}
+ .d2-2753448778 .stroke-B1{stroke:#0D32B2;}
+ .d2-2753448778 .stroke-B2{stroke:#0D32B2;}
+ .d2-2753448778 .stroke-B3{stroke:#E3E9FD;}
+ .d2-2753448778 .stroke-B4{stroke:#E3E9FD;}
+ .d2-2753448778 .stroke-B5{stroke:#EDF0FD;}
+ .d2-2753448778 .stroke-B6{stroke:#F7F8FE;}
+ .d2-2753448778 .stroke-AA2{stroke:#4A6FF3;}
+ .d2-2753448778 .stroke-AA4{stroke:#EDF0FD;}
+ .d2-2753448778 .stroke-AA5{stroke:#F7F8FE;}
+ .d2-2753448778 .stroke-AB4{stroke:#EDF0FD;}
+ .d2-2753448778 .stroke-AB5{stroke:#F7F8FE;}
+ .d2-2753448778 .background-color-N1{background-color:#0A0F25;}
+ .d2-2753448778 .background-color-N2{background-color:#676C7E;}
+ .d2-2753448778 .background-color-N3{background-color:#9499AB;}
+ .d2-2753448778 .background-color-N4{background-color:#CFD2DD;}
+ .d2-2753448778 .background-color-N5{background-color:#DEE1EB;}
+ .d2-2753448778 .background-color-N6{background-color:#EEF1F8;}
+ .d2-2753448778 .background-color-N7{background-color:#FFFFFF;}
+ .d2-2753448778 .background-color-B1{background-color:#0D32B2;}
+ .d2-2753448778 .background-color-B2{background-color:#0D32B2;}
+ .d2-2753448778 .background-color-B3{background-color:#E3E9FD;}
+ .d2-2753448778 .background-color-B4{background-color:#E3E9FD;}
+ .d2-2753448778 .background-color-B5{background-color:#EDF0FD;}
+ .d2-2753448778 .background-color-B6{background-color:#F7F8FE;}
+ .d2-2753448778 .background-color-AA2{background-color:#4A6FF3;}
+ .d2-2753448778 .background-color-AA4{background-color:#EDF0FD;}
+ .d2-2753448778 .background-color-AA5{background-color:#F7F8FE;}
+ .d2-2753448778 .background-color-AB4{background-color:#EDF0FD;}
+ .d2-2753448778 .background-color-AB5{background-color:#F7F8FE;}
+ .d2-2753448778 .color-N1{color:#0A0F25;}
+ .d2-2753448778 .color-N2{color:#676C7E;}
+ .d2-2753448778 .color-N3{color:#9499AB;}
+ .d2-2753448778 .color-N4{color:#CFD2DD;}
+ .d2-2753448778 .color-N5{color:#DEE1EB;}
+ .d2-2753448778 .color-N6{color:#EEF1F8;}
+ .d2-2753448778 .color-N7{color:#FFFFFF;}
+ .d2-2753448778 .color-B1{color:#0D32B2;}
+ .d2-2753448778 .color-B2{color:#0D32B2;}
+ .d2-2753448778 .color-B3{color:#E3E9FD;}
+ .d2-2753448778 .color-B4{color:#E3E9FD;}
+ .d2-2753448778 .color-B5{color:#EDF0FD;}
+ .d2-2753448778 .color-B6{color:#F7F8FE;}
+ .d2-2753448778 .color-AA2{color:#4A6FF3;}
+ .d2-2753448778 .color-AA4{color:#EDF0FD;}
+ .d2-2753448778 .color-AA5{color:#F7F8FE;}
+ .d2-2753448778 .color-AB4{color:#EDF0FD;}
+ .d2-2753448778 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>users id int name string email string password string last_login datetime PK products id int price decimal sku string name string orders id int user_id int product_id int shipments id int order_id int tracking_number string status string
\ No newline at end of file
diff --git a/e2etests/testdata/stable/sql_tables/elk/sketch.exp.svg b/e2etests/testdata/stable/sql_tables/elk/sketch.exp.svg
index 8a5e91dab..5a7475ea3 100644
--- a/e2etests/testdata/stable/sql_tables/elk/sketch.exp.svg
+++ b/e2etests/testdata/stable/sql_tables/elk/sketch.exp.svg
@@ -1,10 +1,10 @@
-
-
- rectangle
-
- square
-
+ .d2-3976241457 .fill-N1{fill:#0A0F25;}
+ .d2-3976241457 .fill-N2{fill:#676C7E;}
+ .d2-3976241457 .fill-N3{fill:#9499AB;}
+ .d2-3976241457 .fill-N4{fill:#CFD2DD;}
+ .d2-3976241457 .fill-N5{fill:#DEE1EB;}
+ .d2-3976241457 .fill-N6{fill:#EEF1F8;}
+ .d2-3976241457 .fill-N7{fill:#FFFFFF;}
+ .d2-3976241457 .fill-B1{fill:#0D32B2;}
+ .d2-3976241457 .fill-B2{fill:#0D32B2;}
+ .d2-3976241457 .fill-B3{fill:#E3E9FD;}
+ .d2-3976241457 .fill-B4{fill:#E3E9FD;}
+ .d2-3976241457 .fill-B5{fill:#EDF0FD;}
+ .d2-3976241457 .fill-B6{fill:#F7F8FE;}
+ .d2-3976241457 .fill-AA2{fill:#4A6FF3;}
+ .d2-3976241457 .fill-AA4{fill:#EDF0FD;}
+ .d2-3976241457 .fill-AA5{fill:#F7F8FE;}
+ .d2-3976241457 .fill-AB4{fill:#EDF0FD;}
+ .d2-3976241457 .fill-AB5{fill:#F7F8FE;}
+ .d2-3976241457 .stroke-N1{stroke:#0A0F25;}
+ .d2-3976241457 .stroke-N2{stroke:#676C7E;}
+ .d2-3976241457 .stroke-N3{stroke:#9499AB;}
+ .d2-3976241457 .stroke-N4{stroke:#CFD2DD;}
+ .d2-3976241457 .stroke-N5{stroke:#DEE1EB;}
+ .d2-3976241457 .stroke-N6{stroke:#EEF1F8;}
+ .d2-3976241457 .stroke-N7{stroke:#FFFFFF;}
+ .d2-3976241457 .stroke-B1{stroke:#0D32B2;}
+ .d2-3976241457 .stroke-B2{stroke:#0D32B2;}
+ .d2-3976241457 .stroke-B3{stroke:#E3E9FD;}
+ .d2-3976241457 .stroke-B4{stroke:#E3E9FD;}
+ .d2-3976241457 .stroke-B5{stroke:#EDF0FD;}
+ .d2-3976241457 .stroke-B6{stroke:#F7F8FE;}
+ .d2-3976241457 .stroke-AA2{stroke:#4A6FF3;}
+ .d2-3976241457 .stroke-AA4{stroke:#EDF0FD;}
+ .d2-3976241457 .stroke-AA5{stroke:#F7F8FE;}
+ .d2-3976241457 .stroke-AB4{stroke:#EDF0FD;}
+ .d2-3976241457 .stroke-AB5{stroke:#F7F8FE;}
+ .d2-3976241457 .background-color-N1{background-color:#0A0F25;}
+ .d2-3976241457 .background-color-N2{background-color:#676C7E;}
+ .d2-3976241457 .background-color-N3{background-color:#9499AB;}
+ .d2-3976241457 .background-color-N4{background-color:#CFD2DD;}
+ .d2-3976241457 .background-color-N5{background-color:#DEE1EB;}
+ .d2-3976241457 .background-color-N6{background-color:#EEF1F8;}
+ .d2-3976241457 .background-color-N7{background-color:#FFFFFF;}
+ .d2-3976241457 .background-color-B1{background-color:#0D32B2;}
+ .d2-3976241457 .background-color-B2{background-color:#0D32B2;}
+ .d2-3976241457 .background-color-B3{background-color:#E3E9FD;}
+ .d2-3976241457 .background-color-B4{background-color:#E3E9FD;}
+ .d2-3976241457 .background-color-B5{background-color:#EDF0FD;}
+ .d2-3976241457 .background-color-B6{background-color:#F7F8FE;}
+ .d2-3976241457 .background-color-AA2{background-color:#4A6FF3;}
+ .d2-3976241457 .background-color-AA4{background-color:#EDF0FD;}
+ .d2-3976241457 .background-color-AA5{background-color:#F7F8FE;}
+ .d2-3976241457 .background-color-AB4{background-color:#EDF0FD;}
+ .d2-3976241457 .background-color-AB5{background-color:#F7F8FE;}
+ .d2-3976241457 .color-N1{color:#0A0F25;}
+ .d2-3976241457 .color-N2{color:#676C7E;}
+ .d2-3976241457 .color-N3{color:#9499AB;}
+ .d2-3976241457 .color-N4{color:#CFD2DD;}
+ .d2-3976241457 .color-N5{color:#DEE1EB;}
+ .d2-3976241457 .color-N6{color:#EEF1F8;}
+ .d2-3976241457 .color-N7{color:#FFFFFF;}
+ .d2-3976241457 .color-B1{color:#0D32B2;}
+ .d2-3976241457 .color-B2{color:#0D32B2;}
+ .d2-3976241457 .color-B3{color:#E3E9FD;}
+ .d2-3976241457 .color-B4{color:#E3E9FD;}
+ .d2-3976241457 .color-B5{color:#EDF0FD;}
+ .d2-3976241457 .color-B6{color:#F7F8FE;}
+ .d2-3976241457 .color-AA2{color:#4A6FF3;}
+ .d2-3976241457 .color-AA4{color:#EDF0FD;}
+ .d2-3976241457 .color-AA5{color:#F7F8FE;}
+ .d2-3976241457 .color-AB4{color:#EDF0FD;}
+ .d2-3976241457 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>
+
+ rectangle
+
+ square
+
\ No newline at end of file
diff --git a/e2etests/testdata/stable/square_3d/elk/board.exp.json b/e2etests/testdata/stable/square_3d/elk/board.exp.json
index 2e0638b79..f8b32dd55 100644
--- a/e2etests/testdata/stable/square_3d/elk/board.exp.json
+++ b/e2etests/testdata/stable/square_3d/elk/board.exp.json
@@ -8,7 +8,7 @@
"type": "rectangle",
"pos": {
"x": 12,
- "y": 12
+ "y": 27
},
"width": 111,
"height": 66,
@@ -49,7 +49,7 @@
"type": "rectangle",
"pos": {
"x": 20,
- "y": 148
+ "y": 178
},
"width": 94,
"height": 94,
@@ -112,12 +112,12 @@
"labelPercentage": 0,
"route": [
{
- "x": 67.5,
- "y": 78
+ "x": 75,
+ "y": 93
},
{
- "x": 67.5,
- "y": 148
+ "x": 75,
+ "y": 163
}
],
"animated": false,
diff --git a/e2etests/testdata/stable/square_3d/elk/sketch.exp.svg b/e2etests/testdata/stable/square_3d/elk/sketch.exp.svg
index beae069f0..3d9102c18 100644
--- a/e2etests/testdata/stable/square_3d/elk/sketch.exp.svg
+++ b/e2etests/testdata/stable/square_3d/elk/sketch.exp.svg
@@ -1,10 +1,10 @@
-
-
- rectangle
-
- square
-
+ .d2-1667339586 .fill-N1{fill:#0A0F25;}
+ .d2-1667339586 .fill-N2{fill:#676C7E;}
+ .d2-1667339586 .fill-N3{fill:#9499AB;}
+ .d2-1667339586 .fill-N4{fill:#CFD2DD;}
+ .d2-1667339586 .fill-N5{fill:#DEE1EB;}
+ .d2-1667339586 .fill-N6{fill:#EEF1F8;}
+ .d2-1667339586 .fill-N7{fill:#FFFFFF;}
+ .d2-1667339586 .fill-B1{fill:#0D32B2;}
+ .d2-1667339586 .fill-B2{fill:#0D32B2;}
+ .d2-1667339586 .fill-B3{fill:#E3E9FD;}
+ .d2-1667339586 .fill-B4{fill:#E3E9FD;}
+ .d2-1667339586 .fill-B5{fill:#EDF0FD;}
+ .d2-1667339586 .fill-B6{fill:#F7F8FE;}
+ .d2-1667339586 .fill-AA2{fill:#4A6FF3;}
+ .d2-1667339586 .fill-AA4{fill:#EDF0FD;}
+ .d2-1667339586 .fill-AA5{fill:#F7F8FE;}
+ .d2-1667339586 .fill-AB4{fill:#EDF0FD;}
+ .d2-1667339586 .fill-AB5{fill:#F7F8FE;}
+ .d2-1667339586 .stroke-N1{stroke:#0A0F25;}
+ .d2-1667339586 .stroke-N2{stroke:#676C7E;}
+ .d2-1667339586 .stroke-N3{stroke:#9499AB;}
+ .d2-1667339586 .stroke-N4{stroke:#CFD2DD;}
+ .d2-1667339586 .stroke-N5{stroke:#DEE1EB;}
+ .d2-1667339586 .stroke-N6{stroke:#EEF1F8;}
+ .d2-1667339586 .stroke-N7{stroke:#FFFFFF;}
+ .d2-1667339586 .stroke-B1{stroke:#0D32B2;}
+ .d2-1667339586 .stroke-B2{stroke:#0D32B2;}
+ .d2-1667339586 .stroke-B3{stroke:#E3E9FD;}
+ .d2-1667339586 .stroke-B4{stroke:#E3E9FD;}
+ .d2-1667339586 .stroke-B5{stroke:#EDF0FD;}
+ .d2-1667339586 .stroke-B6{stroke:#F7F8FE;}
+ .d2-1667339586 .stroke-AA2{stroke:#4A6FF3;}
+ .d2-1667339586 .stroke-AA4{stroke:#EDF0FD;}
+ .d2-1667339586 .stroke-AA5{stroke:#F7F8FE;}
+ .d2-1667339586 .stroke-AB4{stroke:#EDF0FD;}
+ .d2-1667339586 .stroke-AB5{stroke:#F7F8FE;}
+ .d2-1667339586 .background-color-N1{background-color:#0A0F25;}
+ .d2-1667339586 .background-color-N2{background-color:#676C7E;}
+ .d2-1667339586 .background-color-N3{background-color:#9499AB;}
+ .d2-1667339586 .background-color-N4{background-color:#CFD2DD;}
+ .d2-1667339586 .background-color-N5{background-color:#DEE1EB;}
+ .d2-1667339586 .background-color-N6{background-color:#EEF1F8;}
+ .d2-1667339586 .background-color-N7{background-color:#FFFFFF;}
+ .d2-1667339586 .background-color-B1{background-color:#0D32B2;}
+ .d2-1667339586 .background-color-B2{background-color:#0D32B2;}
+ .d2-1667339586 .background-color-B3{background-color:#E3E9FD;}
+ .d2-1667339586 .background-color-B4{background-color:#E3E9FD;}
+ .d2-1667339586 .background-color-B5{background-color:#EDF0FD;}
+ .d2-1667339586 .background-color-B6{background-color:#F7F8FE;}
+ .d2-1667339586 .background-color-AA2{background-color:#4A6FF3;}
+ .d2-1667339586 .background-color-AA4{background-color:#EDF0FD;}
+ .d2-1667339586 .background-color-AA5{background-color:#F7F8FE;}
+ .d2-1667339586 .background-color-AB4{background-color:#EDF0FD;}
+ .d2-1667339586 .background-color-AB5{background-color:#F7F8FE;}
+ .d2-1667339586 .color-N1{color:#0A0F25;}
+ .d2-1667339586 .color-N2{color:#676C7E;}
+ .d2-1667339586 .color-N3{color:#9499AB;}
+ .d2-1667339586 .color-N4{color:#CFD2DD;}
+ .d2-1667339586 .color-N5{color:#DEE1EB;}
+ .d2-1667339586 .color-N6{color:#EEF1F8;}
+ .d2-1667339586 .color-N7{color:#FFFFFF;}
+ .d2-1667339586 .color-B1{color:#0D32B2;}
+ .d2-1667339586 .color-B2{color:#0D32B2;}
+ .d2-1667339586 .color-B3{color:#E3E9FD;}
+ .d2-1667339586 .color-B4{color:#E3E9FD;}
+ .d2-1667339586 .color-B5{color:#EDF0FD;}
+ .d2-1667339586 .color-B6{color:#F7F8FE;}
+ .d2-1667339586 .color-AA2{color:#4A6FF3;}
+ .d2-1667339586 .color-AA4{color:#EDF0FD;}
+ .d2-1667339586 .color-AA5{color:#F7F8FE;}
+ .d2-1667339586 .color-AB4{color:#EDF0FD;}
+ .d2-1667339586 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>
+
+ rectangle
+
+ square
+
\ No newline at end of file
diff --git a/e2etests/testdata/stable/straight_hierarchy_container/dagre/board.exp.json b/e2etests/testdata/stable/straight_hierarchy_container/dagre/board.exp.json
index 18922787f..69a24f07e 100644
--- a/e2etests/testdata/stable/straight_hierarchy_container/dagre/board.exp.json
+++ b/e2etests/testdata/stable/straight_hierarchy_container/dagre/board.exp.json
@@ -1064,7 +1064,7 @@
},
{
"x": 239.5,
- "y": 180.1
+ "y": 180.10000610351562
},
{
"x": 239.5,
@@ -1111,7 +1111,7 @@
},
{
"x": 86.5,
- "y": 180.1
+ "y": 180.10000610351562
},
{
"x": 86.5,
@@ -1158,7 +1158,7 @@
},
{
"x": 392.5,
- "y": 180.1
+ "y": 180.10000610351562
},
{
"x": 392.5,
@@ -1201,7 +1201,7 @@
},
{
"x": 86.5,
- "y": 326.1
+ "y": 326.1000061035156
},
{
"x": 86.5,
@@ -1217,7 +1217,7 @@
},
{
"x": 86.5,
- "y": 446.1
+ "y": 446.1000061035156
},
{
"x": 86.5,
@@ -1260,7 +1260,7 @@
},
{
"x": 392.5,
- "y": 326.1
+ "y": 326.1000061035156
},
{
"x": 392.5,
@@ -1276,7 +1276,7 @@
},
{
"x": 392.5,
- "y": 446.1
+ "y": 446.1000061035156
},
{
"x": 392.5,
@@ -1319,7 +1319,7 @@
},
{
"x": 239.5,
- "y": 326.1
+ "y": 326.1000061035156
},
{
"x": 239.5,
@@ -1335,7 +1335,7 @@
},
{
"x": 239.5,
- "y": 446.1
+ "y": 446.1000061035156
},
{
"x": 239.5,
@@ -1378,7 +1378,7 @@
},
{
"x": 86.5,
- "y": 592.1
+ "y": 592.0999755859375
},
{
"x": 86.5,
@@ -1394,7 +1394,7 @@
},
{
"x": 86.5,
- "y": 712.1
+ "y": 712.0999755859375
},
{
"x": 86.5,
@@ -1437,7 +1437,7 @@
},
{
"x": 239.5,
- "y": 592.1
+ "y": 592.0999755859375
},
{
"x": 239.5,
@@ -1453,7 +1453,7 @@
},
{
"x": 239.5,
- "y": 712.1
+ "y": 712.0999755859375
},
{
"x": 239.5,
@@ -1496,7 +1496,7 @@
},
{
"x": 392.5,
- "y": 592.1
+ "y": 592.0999755859375
},
{
"x": 392.5,
@@ -1512,7 +1512,7 @@
},
{
"x": 392.5,
- "y": 712.1
+ "y": 712.0999755859375
},
{
"x": 392.5,
@@ -1555,7 +1555,7 @@
},
{
"x": 86.5,
- "y": 858.1
+ "y": 858.0999755859375
},
{
"x": 86.5,
@@ -1583,7 +1583,7 @@
},
{
"x": 86.5,
- "y": 1031.7
+ "y": 1031.699951171875
},
{
"x": 86.5,
@@ -1626,7 +1626,7 @@
},
{
"x": 239.5,
- "y": 858.1
+ "y": 858.0999755859375
},
{
"x": 239.5,
@@ -1654,7 +1654,7 @@
},
{
"x": 239.5,
- "y": 1031.7
+ "y": 1031.699951171875
},
{
"x": 239.5,
@@ -1697,7 +1697,7 @@
},
{
"x": 392.5,
- "y": 858.1
+ "y": 858.0999755859375
},
{
"x": 392.5,
@@ -1725,7 +1725,7 @@
},
{
"x": 392.5,
- "y": 1031.7
+ "y": 1031.699951171875
},
{
"x": 392.5,
diff --git a/e2etests/testdata/stable/straight_hierarchy_container/dagre/sketch.exp.svg b/e2etests/testdata/stable/straight_hierarchy_container/dagre/sketch.exp.svg
index d75d0e0b2..d7d30c3a3 100644
--- a/e2etests/testdata/stable/straight_hierarchy_container/dagre/sketch.exp.svg
+++ b/e2etests/testdata/stable/straight_hierarchy_container/dagre/sketch.exp.svg
@@ -1,17 +1,17 @@
-a c b l1 l2c1 l2c3 l2c2 l3c1 l3c2 l4 b a c a c b a b c c1 c2 c3 a b c
+ .d2-1170071224 .fill-N1{fill:#0A0F25;}
+ .d2-1170071224 .fill-N2{fill:#676C7E;}
+ .d2-1170071224 .fill-N3{fill:#9499AB;}
+ .d2-1170071224 .fill-N4{fill:#CFD2DD;}
+ .d2-1170071224 .fill-N5{fill:#DEE1EB;}
+ .d2-1170071224 .fill-N6{fill:#EEF1F8;}
+ .d2-1170071224 .fill-N7{fill:#FFFFFF;}
+ .d2-1170071224 .fill-B1{fill:#0D32B2;}
+ .d2-1170071224 .fill-B2{fill:#0D32B2;}
+ .d2-1170071224 .fill-B3{fill:#E3E9FD;}
+ .d2-1170071224 .fill-B4{fill:#E3E9FD;}
+ .d2-1170071224 .fill-B5{fill:#EDF0FD;}
+ .d2-1170071224 .fill-B6{fill:#F7F8FE;}
+ .d2-1170071224 .fill-AA2{fill:#4A6FF3;}
+ .d2-1170071224 .fill-AA4{fill:#EDF0FD;}
+ .d2-1170071224 .fill-AA5{fill:#F7F8FE;}
+ .d2-1170071224 .fill-AB4{fill:#EDF0FD;}
+ .d2-1170071224 .fill-AB5{fill:#F7F8FE;}
+ .d2-1170071224 .stroke-N1{stroke:#0A0F25;}
+ .d2-1170071224 .stroke-N2{stroke:#676C7E;}
+ .d2-1170071224 .stroke-N3{stroke:#9499AB;}
+ .d2-1170071224 .stroke-N4{stroke:#CFD2DD;}
+ .d2-1170071224 .stroke-N5{stroke:#DEE1EB;}
+ .d2-1170071224 .stroke-N6{stroke:#EEF1F8;}
+ .d2-1170071224 .stroke-N7{stroke:#FFFFFF;}
+ .d2-1170071224 .stroke-B1{stroke:#0D32B2;}
+ .d2-1170071224 .stroke-B2{stroke:#0D32B2;}
+ .d2-1170071224 .stroke-B3{stroke:#E3E9FD;}
+ .d2-1170071224 .stroke-B4{stroke:#E3E9FD;}
+ .d2-1170071224 .stroke-B5{stroke:#EDF0FD;}
+ .d2-1170071224 .stroke-B6{stroke:#F7F8FE;}
+ .d2-1170071224 .stroke-AA2{stroke:#4A6FF3;}
+ .d2-1170071224 .stroke-AA4{stroke:#EDF0FD;}
+ .d2-1170071224 .stroke-AA5{stroke:#F7F8FE;}
+ .d2-1170071224 .stroke-AB4{stroke:#EDF0FD;}
+ .d2-1170071224 .stroke-AB5{stroke:#F7F8FE;}
+ .d2-1170071224 .background-color-N1{background-color:#0A0F25;}
+ .d2-1170071224 .background-color-N2{background-color:#676C7E;}
+ .d2-1170071224 .background-color-N3{background-color:#9499AB;}
+ .d2-1170071224 .background-color-N4{background-color:#CFD2DD;}
+ .d2-1170071224 .background-color-N5{background-color:#DEE1EB;}
+ .d2-1170071224 .background-color-N6{background-color:#EEF1F8;}
+ .d2-1170071224 .background-color-N7{background-color:#FFFFFF;}
+ .d2-1170071224 .background-color-B1{background-color:#0D32B2;}
+ .d2-1170071224 .background-color-B2{background-color:#0D32B2;}
+ .d2-1170071224 .background-color-B3{background-color:#E3E9FD;}
+ .d2-1170071224 .background-color-B4{background-color:#E3E9FD;}
+ .d2-1170071224 .background-color-B5{background-color:#EDF0FD;}
+ .d2-1170071224 .background-color-B6{background-color:#F7F8FE;}
+ .d2-1170071224 .background-color-AA2{background-color:#4A6FF3;}
+ .d2-1170071224 .background-color-AA4{background-color:#EDF0FD;}
+ .d2-1170071224 .background-color-AA5{background-color:#F7F8FE;}
+ .d2-1170071224 .background-color-AB4{background-color:#EDF0FD;}
+ .d2-1170071224 .background-color-AB5{background-color:#F7F8FE;}
+ .d2-1170071224 .color-N1{color:#0A0F25;}
+ .d2-1170071224 .color-N2{color:#676C7E;}
+ .d2-1170071224 .color-N3{color:#9499AB;}
+ .d2-1170071224 .color-N4{color:#CFD2DD;}
+ .d2-1170071224 .color-N5{color:#DEE1EB;}
+ .d2-1170071224 .color-N6{color:#EEF1F8;}
+ .d2-1170071224 .color-N7{color:#FFFFFF;}
+ .d2-1170071224 .color-B1{color:#0D32B2;}
+ .d2-1170071224 .color-B2{color:#0D32B2;}
+ .d2-1170071224 .color-B3{color:#E3E9FD;}
+ .d2-1170071224 .color-B4{color:#E3E9FD;}
+ .d2-1170071224 .color-B5{color:#EDF0FD;}
+ .d2-1170071224 .color-B6{color:#F7F8FE;}
+ .d2-1170071224 .color-AA2{color:#4A6FF3;}
+ .d2-1170071224 .color-AA4{color:#EDF0FD;}
+ .d2-1170071224 .color-AA5{color:#F7F8FE;}
+ .d2-1170071224 .color-AB4{color:#EDF0FD;}
+ .d2-1170071224 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>a c b l1 l2c1 l2c3 l2c2 l3c1 l3c2 l4 b a c a c b a b c c1 c2 c3 a b c
\ No newline at end of file
diff --git a/e2etests/testdata/stable/straight_hierarchy_container/elk/sketch.exp.svg b/e2etests/testdata/stable/straight_hierarchy_container/elk/sketch.exp.svg
index 770d661be..b799ae018 100644
--- a/e2etests/testdata/stable/straight_hierarchy_container/elk/sketch.exp.svg
+++ b/e2etests/testdata/stable/straight_hierarchy_container/elk/sketch.exp.svg
@@ -1,17 +1,17 @@
-
+ .d2-2751146665 .fill-N1{fill:#0A0F25;}
+ .d2-2751146665 .fill-N2{fill:#676C7E;}
+ .d2-2751146665 .fill-N3{fill:#9499AB;}
+ .d2-2751146665 .fill-N4{fill:#CFD2DD;}
+ .d2-2751146665 .fill-N5{fill:#DEE1EB;}
+ .d2-2751146665 .fill-N6{fill:#EEF1F8;}
+ .d2-2751146665 .fill-N7{fill:#FFFFFF;}
+ .d2-2751146665 .fill-B1{fill:#0D32B2;}
+ .d2-2751146665 .fill-B2{fill:#0D32B2;}
+ .d2-2751146665 .fill-B3{fill:#E3E9FD;}
+ .d2-2751146665 .fill-B4{fill:#E3E9FD;}
+ .d2-2751146665 .fill-B5{fill:#EDF0FD;}
+ .d2-2751146665 .fill-B6{fill:#F7F8FE;}
+ .d2-2751146665 .fill-AA2{fill:#4A6FF3;}
+ .d2-2751146665 .fill-AA4{fill:#EDF0FD;}
+ .d2-2751146665 .fill-AA5{fill:#F7F8FE;}
+ .d2-2751146665 .fill-AB4{fill:#EDF0FD;}
+ .d2-2751146665 .fill-AB5{fill:#F7F8FE;}
+ .d2-2751146665 .stroke-N1{stroke:#0A0F25;}
+ .d2-2751146665 .stroke-N2{stroke:#676C7E;}
+ .d2-2751146665 .stroke-N3{stroke:#9499AB;}
+ .d2-2751146665 .stroke-N4{stroke:#CFD2DD;}
+ .d2-2751146665 .stroke-N5{stroke:#DEE1EB;}
+ .d2-2751146665 .stroke-N6{stroke:#EEF1F8;}
+ .d2-2751146665 .stroke-N7{stroke:#FFFFFF;}
+ .d2-2751146665 .stroke-B1{stroke:#0D32B2;}
+ .d2-2751146665 .stroke-B2{stroke:#0D32B2;}
+ .d2-2751146665 .stroke-B3{stroke:#E3E9FD;}
+ .d2-2751146665 .stroke-B4{stroke:#E3E9FD;}
+ .d2-2751146665 .stroke-B5{stroke:#EDF0FD;}
+ .d2-2751146665 .stroke-B6{stroke:#F7F8FE;}
+ .d2-2751146665 .stroke-AA2{stroke:#4A6FF3;}
+ .d2-2751146665 .stroke-AA4{stroke:#EDF0FD;}
+ .d2-2751146665 .stroke-AA5{stroke:#F7F8FE;}
+ .d2-2751146665 .stroke-AB4{stroke:#EDF0FD;}
+ .d2-2751146665 .stroke-AB5{stroke:#F7F8FE;}
+ .d2-2751146665 .background-color-N1{background-color:#0A0F25;}
+ .d2-2751146665 .background-color-N2{background-color:#676C7E;}
+ .d2-2751146665 .background-color-N3{background-color:#9499AB;}
+ .d2-2751146665 .background-color-N4{background-color:#CFD2DD;}
+ .d2-2751146665 .background-color-N5{background-color:#DEE1EB;}
+ .d2-2751146665 .background-color-N6{background-color:#EEF1F8;}
+ .d2-2751146665 .background-color-N7{background-color:#FFFFFF;}
+ .d2-2751146665 .background-color-B1{background-color:#0D32B2;}
+ .d2-2751146665 .background-color-B2{background-color:#0D32B2;}
+ .d2-2751146665 .background-color-B3{background-color:#E3E9FD;}
+ .d2-2751146665 .background-color-B4{background-color:#E3E9FD;}
+ .d2-2751146665 .background-color-B5{background-color:#EDF0FD;}
+ .d2-2751146665 .background-color-B6{background-color:#F7F8FE;}
+ .d2-2751146665 .background-color-AA2{background-color:#4A6FF3;}
+ .d2-2751146665 .background-color-AA4{background-color:#EDF0FD;}
+ .d2-2751146665 .background-color-AA5{background-color:#F7F8FE;}
+ .d2-2751146665 .background-color-AB4{background-color:#EDF0FD;}
+ .d2-2751146665 .background-color-AB5{background-color:#F7F8FE;}
+ .d2-2751146665 .color-N1{color:#0A0F25;}
+ .d2-2751146665 .color-N2{color:#676C7E;}
+ .d2-2751146665 .color-N3{color:#9499AB;}
+ .d2-2751146665 .color-N4{color:#CFD2DD;}
+ .d2-2751146665 .color-N5{color:#DEE1EB;}
+ .d2-2751146665 .color-N6{color:#EEF1F8;}
+ .d2-2751146665 .color-N7{color:#FFFFFF;}
+ .d2-2751146665 .color-B1{color:#0D32B2;}
+ .d2-2751146665 .color-B2{color:#0D32B2;}
+ .d2-2751146665 .color-B3{color:#E3E9FD;}
+ .d2-2751146665 .color-B4{color:#E3E9FD;}
+ .d2-2751146665 .color-B5{color:#EDF0FD;}
+ .d2-2751146665 .color-B6{color:#F7F8FE;}
+ .d2-2751146665 .color-AA2{color:#4A6FF3;}
+ .d2-2751146665 .color-AA4{color:#EDF0FD;}
+ .d2-2751146665 .color-AA5{color:#F7F8FE;}
+ .d2-2751146665 .color-AB4{color:#EDF0FD;}
+ .d2-2751146665 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>
@@ -104,9 +104,9 @@
- x
-
- y in style
-
-
+ x
+
+ y in style
+
+
\ No newline at end of file
diff --git a/e2etests/testdata/stable/stylish/elk/board.exp.json b/e2etests/testdata/stable/stylish/elk/board.exp.json
index 23f758ba8..fd54b847b 100644
--- a/e2etests/testdata/stable/stylish/elk/board.exp.json
+++ b/e2etests/testdata/stable/stylish/elk/board.exp.json
@@ -7,7 +7,7 @@
"id": "x",
"type": "rectangle",
"pos": {
- "x": 12,
+ "x": 20,
"y": 12
},
"width": 53,
@@ -49,7 +49,7 @@
"type": "rectangle",
"pos": {
"x": 12,
- "y": 239
+ "y": 254
},
"width": 54,
"height": 66,
@@ -113,11 +113,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 39,
+ "x": 46.5,
"y": 78
},
{
- "x": 39,
+ "x": 46.5,
"y": 239
}
],
diff --git a/e2etests/testdata/stable/stylish/elk/sketch.exp.svg b/e2etests/testdata/stable/stylish/elk/sketch.exp.svg
index 05850bfd1..3399b571a 100644
--- a/e2etests/testdata/stable/stylish/elk/sketch.exp.svg
+++ b/e2etests/testdata/stable/stylish/elk/sketch.exp.svg
@@ -1,17 +1,17 @@
-
+ .d2-1254608813 .fill-N1{fill:#0A0F25;}
+ .d2-1254608813 .fill-N2{fill:#676C7E;}
+ .d2-1254608813 .fill-N3{fill:#9499AB;}
+ .d2-1254608813 .fill-N4{fill:#CFD2DD;}
+ .d2-1254608813 .fill-N5{fill:#DEE1EB;}
+ .d2-1254608813 .fill-N6{fill:#EEF1F8;}
+ .d2-1254608813 .fill-N7{fill:#FFFFFF;}
+ .d2-1254608813 .fill-B1{fill:#0D32B2;}
+ .d2-1254608813 .fill-B2{fill:#0D32B2;}
+ .d2-1254608813 .fill-B3{fill:#E3E9FD;}
+ .d2-1254608813 .fill-B4{fill:#E3E9FD;}
+ .d2-1254608813 .fill-B5{fill:#EDF0FD;}
+ .d2-1254608813 .fill-B6{fill:#F7F8FE;}
+ .d2-1254608813 .fill-AA2{fill:#4A6FF3;}
+ .d2-1254608813 .fill-AA4{fill:#EDF0FD;}
+ .d2-1254608813 .fill-AA5{fill:#F7F8FE;}
+ .d2-1254608813 .fill-AB4{fill:#EDF0FD;}
+ .d2-1254608813 .fill-AB5{fill:#F7F8FE;}
+ .d2-1254608813 .stroke-N1{stroke:#0A0F25;}
+ .d2-1254608813 .stroke-N2{stroke:#676C7E;}
+ .d2-1254608813 .stroke-N3{stroke:#9499AB;}
+ .d2-1254608813 .stroke-N4{stroke:#CFD2DD;}
+ .d2-1254608813 .stroke-N5{stroke:#DEE1EB;}
+ .d2-1254608813 .stroke-N6{stroke:#EEF1F8;}
+ .d2-1254608813 .stroke-N7{stroke:#FFFFFF;}
+ .d2-1254608813 .stroke-B1{stroke:#0D32B2;}
+ .d2-1254608813 .stroke-B2{stroke:#0D32B2;}
+ .d2-1254608813 .stroke-B3{stroke:#E3E9FD;}
+ .d2-1254608813 .stroke-B4{stroke:#E3E9FD;}
+ .d2-1254608813 .stroke-B5{stroke:#EDF0FD;}
+ .d2-1254608813 .stroke-B6{stroke:#F7F8FE;}
+ .d2-1254608813 .stroke-AA2{stroke:#4A6FF3;}
+ .d2-1254608813 .stroke-AA4{stroke:#EDF0FD;}
+ .d2-1254608813 .stroke-AA5{stroke:#F7F8FE;}
+ .d2-1254608813 .stroke-AB4{stroke:#EDF0FD;}
+ .d2-1254608813 .stroke-AB5{stroke:#F7F8FE;}
+ .d2-1254608813 .background-color-N1{background-color:#0A0F25;}
+ .d2-1254608813 .background-color-N2{background-color:#676C7E;}
+ .d2-1254608813 .background-color-N3{background-color:#9499AB;}
+ .d2-1254608813 .background-color-N4{background-color:#CFD2DD;}
+ .d2-1254608813 .background-color-N5{background-color:#DEE1EB;}
+ .d2-1254608813 .background-color-N6{background-color:#EEF1F8;}
+ .d2-1254608813 .background-color-N7{background-color:#FFFFFF;}
+ .d2-1254608813 .background-color-B1{background-color:#0D32B2;}
+ .d2-1254608813 .background-color-B2{background-color:#0D32B2;}
+ .d2-1254608813 .background-color-B3{background-color:#E3E9FD;}
+ .d2-1254608813 .background-color-B4{background-color:#E3E9FD;}
+ .d2-1254608813 .background-color-B5{background-color:#EDF0FD;}
+ .d2-1254608813 .background-color-B6{background-color:#F7F8FE;}
+ .d2-1254608813 .background-color-AA2{background-color:#4A6FF3;}
+ .d2-1254608813 .background-color-AA4{background-color:#EDF0FD;}
+ .d2-1254608813 .background-color-AA5{background-color:#F7F8FE;}
+ .d2-1254608813 .background-color-AB4{background-color:#EDF0FD;}
+ .d2-1254608813 .background-color-AB5{background-color:#F7F8FE;}
+ .d2-1254608813 .color-N1{color:#0A0F25;}
+ .d2-1254608813 .color-N2{color:#676C7E;}
+ .d2-1254608813 .color-N3{color:#9499AB;}
+ .d2-1254608813 .color-N4{color:#CFD2DD;}
+ .d2-1254608813 .color-N5{color:#DEE1EB;}
+ .d2-1254608813 .color-N6{color:#EEF1F8;}
+ .d2-1254608813 .color-N7{color:#FFFFFF;}
+ .d2-1254608813 .color-B1{color:#0D32B2;}
+ .d2-1254608813 .color-B2{color:#0D32B2;}
+ .d2-1254608813 .color-B3{color:#E3E9FD;}
+ .d2-1254608813 .color-B4{color:#E3E9FD;}
+ .d2-1254608813 .color-B5{color:#EDF0FD;}
+ .d2-1254608813 .color-B6{color:#F7F8FE;}
+ .d2-1254608813 .color-AA2{color:#4A6FF3;}
+ .d2-1254608813 .color-AA4{color:#EDF0FD;}
+ .d2-1254608813 .color-AA5{color:#F7F8FE;}
+ .d2-1254608813 .color-AB4{color:#EDF0FD;}
+ .d2-1254608813 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>
@@ -104,9 +104,9 @@
- x
-
- y in style
-
-
+ x
+
+ y in style
+
+
\ No newline at end of file
diff --git a/e2etests/testdata/stable/teleport_grid/dagre/board.exp.json b/e2etests/testdata/stable/teleport_grid/dagre/board.exp.json
index 97990838d..aef37e591 100644
--- a/e2etests/testdata/stable/teleport_grid/dagre/board.exp.json
+++ b/e2etests/testdata/stable/teleport_grid/dagre/board.exp.json
@@ -1297,11 +1297,11 @@
"y": 434.5
},
{
- "x": 380.4,
+ "x": 380.3999938964844,
"y": 434.5
},
{
- "x": 434.7,
+ "x": 434.70001220703125,
"y": 434.5
},
{
@@ -1344,11 +1344,11 @@
"y": 434.5
},
{
- "x": 887.4,
+ "x": 887.4000244140625,
"y": 434.5
},
{
- "x": 941.7,
+ "x": 941.7000122070312,
"y": 434.5
},
{
@@ -1387,15 +1387,15 @@
"labelPercentage": 0,
"route": [
{
- "x": 1511.3287671232877,
+ "x": 1511.3280029296875,
"y": 283
},
{
- "x": 1721.4657534246576,
- "y": 141.4
+ "x": 1721.4649658203125,
+ "y": 141.39999389648438
},
{
- "x": 1824.2,
+ "x": 1824.199951171875,
"y": 106
},
{
@@ -1435,11 +1435,11 @@
"route": [
{
"x": 1523,
- "y": 419.70358974358976
+ "y": 419.7030029296875
},
{
- "x": 1723.8,
- "y": 407.14071794871796
+ "x": 1723.800048828125,
+ "y": 407.1400146484375
},
{
"x": 1848,
@@ -1482,19 +1482,19 @@
"route": [
{
"x": 1523,
- "y": 495.38358974358977
+ "y": 495.38299560546875
},
{
- "x": 1723.8,
- "y": 547.0767179487179
+ "x": 1723.800048828125,
+ "y": 547.0759887695312
},
{
- "x": 1886.1,
- "y": 576.1111951588503
+ "x": 1886.0999755859375,
+ "y": 576.1110229492188
},
{
"x": 2334.5,
- "y": 640.5559757942511
+ "y": 640.5549926757812
}
],
"isCurve": true,
@@ -1529,19 +1529,19 @@
"route": [
{
"x": 1523,
- "y": 556.2671794871795
+ "y": 556.2670288085938
},
{
- "x": 1723.8,
- "y": 659.6534358974359
+ "x": 1723.800048828125,
+ "y": 659.6530151367188
},
{
- "x": 1886.1,
- "y": 680.3274583963691
+ "x": 1886.0999755859375,
+ "y": 680.3270263671875
},
{
"x": 2334.5,
- "y": 659.6372919818457
+ "y": 659.6370239257812
}
],
"isCurve": true,
diff --git a/e2etests/testdata/stable/teleport_grid/dagre/sketch.exp.svg b/e2etests/testdata/stable/teleport_grid/dagre/sketch.exp.svg
index 99ac615a4..576bce419 100644
--- a/e2etests/testdata/stable/teleport_grid/dagre/sketch.exp.svg
+++ b/e2etests/testdata/stable/teleport_grid/dagre/sketch.exp.svg
@@ -1,28 +1,28 @@
-Teleport Just-in-time Access via Infrastructure Indentity Provider Engineers Machines HTTPS:// > kubectl > tsh > api DB Clients
Identity Native Proxy
-Audit Log Cert Authority Slack Mattermost Jira Email ssh Kubernetes My SQL MongoDB PSQL Windows all connections audited and logged
+Audit Log Cert Authority Slack Mattermost Jira Email ssh Kubernetes My SQL MongoDB PSQL Windows all connections audited and logged
\ No newline at end of file
diff --git a/e2etests/testdata/stable/teleport_grid/elk/board.exp.json b/e2etests/testdata/stable/teleport_grid/elk/board.exp.json
index 739c31757..d5f9cac59 100644
--- a/e2etests/testdata/stable/teleport_grid/elk/board.exp.json
+++ b/e2etests/testdata/stable/teleport_grid/elk/board.exp.json
@@ -1294,11 +1294,11 @@
"route": [
{
"x": 284,
- "y": 427.0333333333333
+ "y": 427.0329895019531
},
{
"x": 354,
- "y": 427.0333333333333
+ "y": 427.0329895019531
}
],
"animated": false,
@@ -1332,11 +1332,11 @@
"route": [
{
"x": 590,
- "y": 427.0333333333333
+ "y": 427.0329895019531
},
{
"x": 660,
- "y": 427.0333333333333
+ "y": 427.0329895019531
}
],
"animated": false,
@@ -1370,11 +1370,11 @@
"route": [
{
"x": 1133,
- "y": 336.1333333333333
+ "y": 336.13299560546875
},
{
"x": 1173,
- "y": 336.1333333333333
+ "y": 336.13299560546875
},
{
"x": 1173,
@@ -1416,11 +1416,11 @@
"route": [
{
"x": 1133,
- "y": 396.7333333333333
+ "y": 396.7330017089844
},
{
"x": 1263,
- "y": 396.7333333333333
+ "y": 396.7330017089844
}
],
"animated": false,
@@ -1454,19 +1454,19 @@
"route": [
{
"x": 1133,
- "y": 457.3333333333333
+ "y": 457.3330078125
},
{
"x": 1223,
- "y": 457.3333333333333
+ "y": 457.3330078125
},
{
"x": 1223,
- "y": 553.3333333333333
+ "y": 553.3330078125
},
{
"x": 1263,
- "y": 553.3333333333333
+ "y": 553.3330078125
}
],
"animated": false,
@@ -1500,19 +1500,19 @@
"route": [
{
"x": 1133,
- "y": 517.9333333333333
+ "y": 517.9329833984375
},
{
"x": 1173,
- "y": 517.9333333333333
+ "y": 517.9329833984375
},
{
"x": 1173,
- "y": 592.6666666666666
+ "y": 592.666015625
},
{
"x": 1263,
- "y": 592.6666666666666
+ "y": 592.666015625
}
],
"animated": false,
diff --git a/e2etests/testdata/stable/teleport_grid/elk/sketch.exp.svg b/e2etests/testdata/stable/teleport_grid/elk/sketch.exp.svg
index b2e35693f..8c4128e31 100644
--- a/e2etests/testdata/stable/teleport_grid/elk/sketch.exp.svg
+++ b/e2etests/testdata/stable/teleport_grid/elk/sketch.exp.svg
@@ -1,28 +1,28 @@
-Teleport Just-in-time Access via Infrastructure Indentity Provider Engineers Machines HTTPS:// > kubectl > tsh > api DB Clients
Identity Native Proxy
-Audit Log Cert Authority Slack Mattermost Jira Email ssh Kubernetes My SQL MongoDB PSQL Windows all connections audited and logged
+Audit Log Cert Authority Slack Mattermost Jira Email ssh Kubernetes My SQL MongoDB PSQL Windows all connections audited and logged
\ No newline at end of file
diff --git a/e2etests/testdata/stable/text_font_sizes/dagre/board.exp.json b/e2etests/testdata/stable/text_font_sizes/dagre/board.exp.json
index 22b217085..2f358182b 100644
--- a/e2etests/testdata/stable/text_font_sizes/dagre/board.exp.json
+++ b/e2etests/testdata/stable/text_font_sizes/dagre/board.exp.json
@@ -155,10 +155,10 @@
},
{
"x": 67.5,
- "y": 80.7
+ "y": 80.69999694824219
},
{
- "x": 82.7,
+ "x": 82.69999694824219,
"y": 101
},
{
@@ -205,7 +205,7 @@
"y": 81
},
{
- "x": 246.8,
+ "x": 246.8000030517578,
"y": 101
},
{
diff --git a/e2etests/testdata/stable/text_font_sizes/dagre/sketch.exp.svg b/e2etests/testdata/stable/text_font_sizes/dagre/sketch.exp.svg
index 647887329..37c209aeb 100644
--- a/e2etests/testdata/stable/text_font_sizes/dagre/sketch.exp.svg
+++ b/e2etests/testdata/stable/text_font_sizes/dagre/sketch.exp.svg
@@ -1,27 +1,27 @@
-bear mama bear papa bear
+bear mama bear papa bear
\ No newline at end of file
diff --git a/e2etests/testdata/stable/text_font_sizes/elk/board.exp.json b/e2etests/testdata/stable/text_font_sizes/elk/board.exp.json
index a65a139ed..9c0d32fe8 100644
--- a/e2etests/testdata/stable/text_font_sizes/elk/board.exp.json
+++ b/e2etests/testdata/stable/text_font_sizes/elk/board.exp.json
@@ -158,11 +158,11 @@
"y": 93
},
{
- "x": 143.41666666666666,
+ "x": 143.41600036621094,
"y": 93
},
{
- "x": 143.41666666666666,
+ "x": 143.41600036621094,
"y": 133
}
],
@@ -204,11 +204,11 @@
"y": 93
},
{
- "x": 170.08333333333334,
+ "x": 170.08299255371094,
"y": 93
},
{
- "x": 170.08333333333334,
+ "x": 170.08299255371094,
"y": 133
}
],
diff --git a/e2etests/testdata/stable/text_font_sizes/elk/sketch.exp.svg b/e2etests/testdata/stable/text_font_sizes/elk/sketch.exp.svg
index c92e6d2de..ad9f40df5 100644
--- a/e2etests/testdata/stable/text_font_sizes/elk/sketch.exp.svg
+++ b/e2etests/testdata/stable/text_font_sizes/elk/sketch.exp.svg
@@ -1,27 +1,27 @@
-bear mama bear papa bear
+bear mama bear papa bear
\ No newline at end of file
diff --git a/e2etests/testdata/stable/tooltips/dagre/sketch.exp.svg b/e2etests/testdata/stable/tooltips/dagre/sketch.exp.svg
index e63f1c5dd..62d4959c5 100644
--- a/e2etests/testdata/stable/tooltips/dagre/sketch.exp.svg
+++ b/e2etests/testdata/stable/tooltips/dagre/sketch.exp.svg
@@ -1,4 +1,4 @@
-
-
- cube
-
+ .d2-3022025492 .fill-N1{fill:#0A0F25;}
+ .d2-3022025492 .fill-N2{fill:#676C7E;}
+ .d2-3022025492 .fill-N3{fill:#9499AB;}
+ .d2-3022025492 .fill-N4{fill:#CFD2DD;}
+ .d2-3022025492 .fill-N5{fill:#DEE1EB;}
+ .d2-3022025492 .fill-N6{fill:#EEF1F8;}
+ .d2-3022025492 .fill-N7{fill:#FFFFFF;}
+ .d2-3022025492 .fill-B1{fill:#0D32B2;}
+ .d2-3022025492 .fill-B2{fill:#0D32B2;}
+ .d2-3022025492 .fill-B3{fill:#E3E9FD;}
+ .d2-3022025492 .fill-B4{fill:#E3E9FD;}
+ .d2-3022025492 .fill-B5{fill:#EDF0FD;}
+ .d2-3022025492 .fill-B6{fill:#F7F8FE;}
+ .d2-3022025492 .fill-AA2{fill:#4A6FF3;}
+ .d2-3022025492 .fill-AA4{fill:#EDF0FD;}
+ .d2-3022025492 .fill-AA5{fill:#F7F8FE;}
+ .d2-3022025492 .fill-AB4{fill:#EDF0FD;}
+ .d2-3022025492 .fill-AB5{fill:#F7F8FE;}
+ .d2-3022025492 .stroke-N1{stroke:#0A0F25;}
+ .d2-3022025492 .stroke-N2{stroke:#676C7E;}
+ .d2-3022025492 .stroke-N3{stroke:#9499AB;}
+ .d2-3022025492 .stroke-N4{stroke:#CFD2DD;}
+ .d2-3022025492 .stroke-N5{stroke:#DEE1EB;}
+ .d2-3022025492 .stroke-N6{stroke:#EEF1F8;}
+ .d2-3022025492 .stroke-N7{stroke:#FFFFFF;}
+ .d2-3022025492 .stroke-B1{stroke:#0D32B2;}
+ .d2-3022025492 .stroke-B2{stroke:#0D32B2;}
+ .d2-3022025492 .stroke-B3{stroke:#E3E9FD;}
+ .d2-3022025492 .stroke-B4{stroke:#E3E9FD;}
+ .d2-3022025492 .stroke-B5{stroke:#EDF0FD;}
+ .d2-3022025492 .stroke-B6{stroke:#F7F8FE;}
+ .d2-3022025492 .stroke-AA2{stroke:#4A6FF3;}
+ .d2-3022025492 .stroke-AA4{stroke:#EDF0FD;}
+ .d2-3022025492 .stroke-AA5{stroke:#F7F8FE;}
+ .d2-3022025492 .stroke-AB4{stroke:#EDF0FD;}
+ .d2-3022025492 .stroke-AB5{stroke:#F7F8FE;}
+ .d2-3022025492 .background-color-N1{background-color:#0A0F25;}
+ .d2-3022025492 .background-color-N2{background-color:#676C7E;}
+ .d2-3022025492 .background-color-N3{background-color:#9499AB;}
+ .d2-3022025492 .background-color-N4{background-color:#CFD2DD;}
+ .d2-3022025492 .background-color-N5{background-color:#DEE1EB;}
+ .d2-3022025492 .background-color-N6{background-color:#EEF1F8;}
+ .d2-3022025492 .background-color-N7{background-color:#FFFFFF;}
+ .d2-3022025492 .background-color-B1{background-color:#0D32B2;}
+ .d2-3022025492 .background-color-B2{background-color:#0D32B2;}
+ .d2-3022025492 .background-color-B3{background-color:#E3E9FD;}
+ .d2-3022025492 .background-color-B4{background-color:#E3E9FD;}
+ .d2-3022025492 .background-color-B5{background-color:#EDF0FD;}
+ .d2-3022025492 .background-color-B6{background-color:#F7F8FE;}
+ .d2-3022025492 .background-color-AA2{background-color:#4A6FF3;}
+ .d2-3022025492 .background-color-AA4{background-color:#EDF0FD;}
+ .d2-3022025492 .background-color-AA5{background-color:#F7F8FE;}
+ .d2-3022025492 .background-color-AB4{background-color:#EDF0FD;}
+ .d2-3022025492 .background-color-AB5{background-color:#F7F8FE;}
+ .d2-3022025492 .color-N1{color:#0A0F25;}
+ .d2-3022025492 .color-N2{color:#676C7E;}
+ .d2-3022025492 .color-N3{color:#9499AB;}
+ .d2-3022025492 .color-N4{color:#CFD2DD;}
+ .d2-3022025492 .color-N5{color:#DEE1EB;}
+ .d2-3022025492 .color-N6{color:#EEF1F8;}
+ .d2-3022025492 .color-N7{color:#FFFFFF;}
+ .d2-3022025492 .color-B1{color:#0D32B2;}
+ .d2-3022025492 .color-B2{color:#0D32B2;}
+ .d2-3022025492 .color-B3{color:#E3E9FD;}
+ .d2-3022025492 .color-B4{color:#E3E9FD;}
+ .d2-3022025492 .color-B5{color:#EDF0FD;}
+ .d2-3022025492 .color-B6{color:#F7F8FE;}
+ .d2-3022025492 .color-AA2{color:#4A6FF3;}
+ .d2-3022025492 .color-AA4{color:#EDF0FD;}
+ .d2-3022025492 .color-AA5{color:#F7F8FE;}
+ .d2-3022025492 .color-AB4{color:#EDF0FD;}
+ .d2-3022025492 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>
+
+ cube
+
\ No newline at end of file
diff --git a/e2etests/testdata/stable/transparent_3d/elk/board.exp.json b/e2etests/testdata/stable/transparent_3d/elk/board.exp.json
index 27833da33..217bcd057 100644
--- a/e2etests/testdata/stable/transparent_3d/elk/board.exp.json
+++ b/e2etests/testdata/stable/transparent_3d/elk/board.exp.json
@@ -8,7 +8,7 @@
"type": "rectangle",
"pos": {
"x": 12,
- "y": 12
+ "y": 27
},
"width": 79,
"height": 66,
diff --git a/e2etests/testdata/stable/transparent_3d/elk/sketch.exp.svg b/e2etests/testdata/stable/transparent_3d/elk/sketch.exp.svg
index 963cfb137..76ba1db4a 100644
--- a/e2etests/testdata/stable/transparent_3d/elk/sketch.exp.svg
+++ b/e2etests/testdata/stable/transparent_3d/elk/sketch.exp.svg
@@ -1,10 +1,10 @@
-
-
- cube
-
+ .d2-2449618350 .fill-N1{fill:#0A0F25;}
+ .d2-2449618350 .fill-N2{fill:#676C7E;}
+ .d2-2449618350 .fill-N3{fill:#9499AB;}
+ .d2-2449618350 .fill-N4{fill:#CFD2DD;}
+ .d2-2449618350 .fill-N5{fill:#DEE1EB;}
+ .d2-2449618350 .fill-N6{fill:#EEF1F8;}
+ .d2-2449618350 .fill-N7{fill:#FFFFFF;}
+ .d2-2449618350 .fill-B1{fill:#0D32B2;}
+ .d2-2449618350 .fill-B2{fill:#0D32B2;}
+ .d2-2449618350 .fill-B3{fill:#E3E9FD;}
+ .d2-2449618350 .fill-B4{fill:#E3E9FD;}
+ .d2-2449618350 .fill-B5{fill:#EDF0FD;}
+ .d2-2449618350 .fill-B6{fill:#F7F8FE;}
+ .d2-2449618350 .fill-AA2{fill:#4A6FF3;}
+ .d2-2449618350 .fill-AA4{fill:#EDF0FD;}
+ .d2-2449618350 .fill-AA5{fill:#F7F8FE;}
+ .d2-2449618350 .fill-AB4{fill:#EDF0FD;}
+ .d2-2449618350 .fill-AB5{fill:#F7F8FE;}
+ .d2-2449618350 .stroke-N1{stroke:#0A0F25;}
+ .d2-2449618350 .stroke-N2{stroke:#676C7E;}
+ .d2-2449618350 .stroke-N3{stroke:#9499AB;}
+ .d2-2449618350 .stroke-N4{stroke:#CFD2DD;}
+ .d2-2449618350 .stroke-N5{stroke:#DEE1EB;}
+ .d2-2449618350 .stroke-N6{stroke:#EEF1F8;}
+ .d2-2449618350 .stroke-N7{stroke:#FFFFFF;}
+ .d2-2449618350 .stroke-B1{stroke:#0D32B2;}
+ .d2-2449618350 .stroke-B2{stroke:#0D32B2;}
+ .d2-2449618350 .stroke-B3{stroke:#E3E9FD;}
+ .d2-2449618350 .stroke-B4{stroke:#E3E9FD;}
+ .d2-2449618350 .stroke-B5{stroke:#EDF0FD;}
+ .d2-2449618350 .stroke-B6{stroke:#F7F8FE;}
+ .d2-2449618350 .stroke-AA2{stroke:#4A6FF3;}
+ .d2-2449618350 .stroke-AA4{stroke:#EDF0FD;}
+ .d2-2449618350 .stroke-AA5{stroke:#F7F8FE;}
+ .d2-2449618350 .stroke-AB4{stroke:#EDF0FD;}
+ .d2-2449618350 .stroke-AB5{stroke:#F7F8FE;}
+ .d2-2449618350 .background-color-N1{background-color:#0A0F25;}
+ .d2-2449618350 .background-color-N2{background-color:#676C7E;}
+ .d2-2449618350 .background-color-N3{background-color:#9499AB;}
+ .d2-2449618350 .background-color-N4{background-color:#CFD2DD;}
+ .d2-2449618350 .background-color-N5{background-color:#DEE1EB;}
+ .d2-2449618350 .background-color-N6{background-color:#EEF1F8;}
+ .d2-2449618350 .background-color-N7{background-color:#FFFFFF;}
+ .d2-2449618350 .background-color-B1{background-color:#0D32B2;}
+ .d2-2449618350 .background-color-B2{background-color:#0D32B2;}
+ .d2-2449618350 .background-color-B3{background-color:#E3E9FD;}
+ .d2-2449618350 .background-color-B4{background-color:#E3E9FD;}
+ .d2-2449618350 .background-color-B5{background-color:#EDF0FD;}
+ .d2-2449618350 .background-color-B6{background-color:#F7F8FE;}
+ .d2-2449618350 .background-color-AA2{background-color:#4A6FF3;}
+ .d2-2449618350 .background-color-AA4{background-color:#EDF0FD;}
+ .d2-2449618350 .background-color-AA5{background-color:#F7F8FE;}
+ .d2-2449618350 .background-color-AB4{background-color:#EDF0FD;}
+ .d2-2449618350 .background-color-AB5{background-color:#F7F8FE;}
+ .d2-2449618350 .color-N1{color:#0A0F25;}
+ .d2-2449618350 .color-N2{color:#676C7E;}
+ .d2-2449618350 .color-N3{color:#9499AB;}
+ .d2-2449618350 .color-N4{color:#CFD2DD;}
+ .d2-2449618350 .color-N5{color:#DEE1EB;}
+ .d2-2449618350 .color-N6{color:#EEF1F8;}
+ .d2-2449618350 .color-N7{color:#FFFFFF;}
+ .d2-2449618350 .color-B1{color:#0D32B2;}
+ .d2-2449618350 .color-B2{color:#0D32B2;}
+ .d2-2449618350 .color-B3{color:#E3E9FD;}
+ .d2-2449618350 .color-B4{color:#E3E9FD;}
+ .d2-2449618350 .color-B5{color:#EDF0FD;}
+ .d2-2449618350 .color-B6{color:#F7F8FE;}
+ .d2-2449618350 .color-AA2{color:#4A6FF3;}
+ .d2-2449618350 .color-AA4{color:#EDF0FD;}
+ .d2-2449618350 .color-AA5{color:#F7F8FE;}
+ .d2-2449618350 .color-AB4{color:#EDF0FD;}
+ .d2-2449618350 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>
+
+ cube
+
\ No newline at end of file
diff --git a/e2etests/testdata/stable/unnamed_only_height/dagre/sketch.exp.svg b/e2etests/testdata/stable/unnamed_only_height/dagre/sketch.exp.svg
index 89a1bbd71..e15935f8a 100644
--- a/e2etests/testdata/stable/unnamed_only_height/dagre/sketch.exp.svg
+++ b/e2etests/testdata/stable/unnamed_only_height/dagre/sketch.exp.svg
@@ -1,24 +1,24 @@
-AL FL GA MS TN AK AZ CA NV NM UT AR LA MO OK TX OR CO KS NE WY CT MA NY RI DE MD NJ PA NC SC HI ID MT WA IL IN IA MI KY WI OH MN SD VA WV ME NH VT ND
+ .d2-4078018276 .fill-N1{fill:#0A0F25;}
+ .d2-4078018276 .fill-N2{fill:#676C7E;}
+ .d2-4078018276 .fill-N3{fill:#9499AB;}
+ .d2-4078018276 .fill-N4{fill:#CFD2DD;}
+ .d2-4078018276 .fill-N5{fill:#DEE1EB;}
+ .d2-4078018276 .fill-N6{fill:#EEF1F8;}
+ .d2-4078018276 .fill-N7{fill:#FFFFFF;}
+ .d2-4078018276 .fill-B1{fill:#0D32B2;}
+ .d2-4078018276 .fill-B2{fill:#0D32B2;}
+ .d2-4078018276 .fill-B3{fill:#E3E9FD;}
+ .d2-4078018276 .fill-B4{fill:#E3E9FD;}
+ .d2-4078018276 .fill-B5{fill:#EDF0FD;}
+ .d2-4078018276 .fill-B6{fill:#F7F8FE;}
+ .d2-4078018276 .fill-AA2{fill:#4A6FF3;}
+ .d2-4078018276 .fill-AA4{fill:#EDF0FD;}
+ .d2-4078018276 .fill-AA5{fill:#F7F8FE;}
+ .d2-4078018276 .fill-AB4{fill:#EDF0FD;}
+ .d2-4078018276 .fill-AB5{fill:#F7F8FE;}
+ .d2-4078018276 .stroke-N1{stroke:#0A0F25;}
+ .d2-4078018276 .stroke-N2{stroke:#676C7E;}
+ .d2-4078018276 .stroke-N3{stroke:#9499AB;}
+ .d2-4078018276 .stroke-N4{stroke:#CFD2DD;}
+ .d2-4078018276 .stroke-N5{stroke:#DEE1EB;}
+ .d2-4078018276 .stroke-N6{stroke:#EEF1F8;}
+ .d2-4078018276 .stroke-N7{stroke:#FFFFFF;}
+ .d2-4078018276 .stroke-B1{stroke:#0D32B2;}
+ .d2-4078018276 .stroke-B2{stroke:#0D32B2;}
+ .d2-4078018276 .stroke-B3{stroke:#E3E9FD;}
+ .d2-4078018276 .stroke-B4{stroke:#E3E9FD;}
+ .d2-4078018276 .stroke-B5{stroke:#EDF0FD;}
+ .d2-4078018276 .stroke-B6{stroke:#F7F8FE;}
+ .d2-4078018276 .stroke-AA2{stroke:#4A6FF3;}
+ .d2-4078018276 .stroke-AA4{stroke:#EDF0FD;}
+ .d2-4078018276 .stroke-AA5{stroke:#F7F8FE;}
+ .d2-4078018276 .stroke-AB4{stroke:#EDF0FD;}
+ .d2-4078018276 .stroke-AB5{stroke:#F7F8FE;}
+ .d2-4078018276 .background-color-N1{background-color:#0A0F25;}
+ .d2-4078018276 .background-color-N2{background-color:#676C7E;}
+ .d2-4078018276 .background-color-N3{background-color:#9499AB;}
+ .d2-4078018276 .background-color-N4{background-color:#CFD2DD;}
+ .d2-4078018276 .background-color-N5{background-color:#DEE1EB;}
+ .d2-4078018276 .background-color-N6{background-color:#EEF1F8;}
+ .d2-4078018276 .background-color-N7{background-color:#FFFFFF;}
+ .d2-4078018276 .background-color-B1{background-color:#0D32B2;}
+ .d2-4078018276 .background-color-B2{background-color:#0D32B2;}
+ .d2-4078018276 .background-color-B3{background-color:#E3E9FD;}
+ .d2-4078018276 .background-color-B4{background-color:#E3E9FD;}
+ .d2-4078018276 .background-color-B5{background-color:#EDF0FD;}
+ .d2-4078018276 .background-color-B6{background-color:#F7F8FE;}
+ .d2-4078018276 .background-color-AA2{background-color:#4A6FF3;}
+ .d2-4078018276 .background-color-AA4{background-color:#EDF0FD;}
+ .d2-4078018276 .background-color-AA5{background-color:#F7F8FE;}
+ .d2-4078018276 .background-color-AB4{background-color:#EDF0FD;}
+ .d2-4078018276 .background-color-AB5{background-color:#F7F8FE;}
+ .d2-4078018276 .color-N1{color:#0A0F25;}
+ .d2-4078018276 .color-N2{color:#676C7E;}
+ .d2-4078018276 .color-N3{color:#9499AB;}
+ .d2-4078018276 .color-N4{color:#CFD2DD;}
+ .d2-4078018276 .color-N5{color:#DEE1EB;}
+ .d2-4078018276 .color-N6{color:#EEF1F8;}
+ .d2-4078018276 .color-N7{color:#FFFFFF;}
+ .d2-4078018276 .color-B1{color:#0D32B2;}
+ .d2-4078018276 .color-B2{color:#0D32B2;}
+ .d2-4078018276 .color-B3{color:#E3E9FD;}
+ .d2-4078018276 .color-B4{color:#E3E9FD;}
+ .d2-4078018276 .color-B5{color:#EDF0FD;}
+ .d2-4078018276 .color-B6{color:#F7F8FE;}
+ .d2-4078018276 .color-AA2{color:#4A6FF3;}
+ .d2-4078018276 .color-AA4{color:#EDF0FD;}
+ .d2-4078018276 .color-AA5{color:#F7F8FE;}
+ .d2-4078018276 .color-AB4{color:#EDF0FD;}
+ .d2-4078018276 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>AL FL GA MS TN AK AZ CA NV NM UT AR LA MO OK TX OR CO KS NE WY CT MA NY RI DE MD NJ PA NC SC HI ID MT WA IL IN IA MI KY WI OH MN SD VA WV ME NH VT ND
\ No newline at end of file
diff --git a/e2etests/testdata/stable/us_map/elk/board.exp.json b/e2etests/testdata/stable/us_map/elk/board.exp.json
index 7d0563ca6..3bd2d2ce9 100644
--- a/e2etests/testdata/stable/us_map/elk/board.exp.json
+++ b/e2etests/testdata/stable/us_map/elk/board.exp.json
@@ -2080,11 +2080,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 1319.654761904762,
+ "x": 1319.654052734375,
"y": 214
},
{
- "x": 1319.654761904762,
+ "x": 1319.654052734375,
"y": 294
}
],
@@ -2118,11 +2118,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 1306.3214285714284,
+ "x": 1306.321044921875,
"y": 360
},
{
- "x": 1306.3214285714284,
+ "x": 1306.321044921875,
"y": 440
}
],
@@ -2156,19 +2156,19 @@
"labelPercentage": 0,
"route": [
{
- "x": 1332.988095238095,
+ "x": 1332.988037109375,
"y": 506
},
{
- "x": 1332.988095238095,
+ "x": 1332.988037109375,
"y": 546
},
{
- "x": 1452.0476190476193,
+ "x": 1452.0469970703125,
"y": 546
},
{
- "x": 1452.0476190476193,
+ "x": 1452.0469970703125,
"y": 686
}
],
@@ -2202,19 +2202,19 @@
"labelPercentage": 0,
"route": [
{
- "x": 1497.5476190476193,
+ "x": 1497.5469970703125,
"y": 752
},
{
- "x": 1497.5476190476193,
+ "x": 1497.5469970703125,
"y": 2276
},
{
- "x": 1300.154761904762,
+ "x": 1300.154052734375,
"y": 2276
},
{
- "x": 1300.154761904762,
+ "x": 1300.154052734375,
"y": 2366
}
],
@@ -2248,11 +2248,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 113.90476190476197,
+ "x": 113.90399932861328,
"y": 752
},
{
- "x": 113.90476190476197,
+ "x": 113.90399932861328,
"y": 1032
}
],
@@ -2286,11 +2286,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 100.57142857142864,
+ "x": 100.57099914550781,
"y": 1098
},
{
- "x": 100.57142857142867,
+ "x": 100.57099914550781,
"y": 1428
}
],
@@ -2324,19 +2324,19 @@
"labelPercentage": 0,
"route": [
{
- "x": 188.57142857142867,
+ "x": 188.5709991455078,
"y": 1494
},
{
- "x": 188.57142857142867,
+ "x": 188.5709991455078,
"y": 1534
},
{
- "x": 246.46428571428578,
+ "x": 246.46400451660156,
"y": 1534
},
{
- "x": 246.46428571428578,
+ "x": 246.46400451660156,
"y": 1674
}
],
@@ -2370,19 +2370,19 @@
"labelPercentage": 0,
"route": [
{
- "x": 236.46428571428578,
+ "x": 236.46400451660156,
"y": 1740
},
{
- "x": 236.46428571428578,
+ "x": 236.46400451660156,
"y": 1930
},
{
- "x": 292.6309523809525,
+ "x": 292.6300048828125,
"y": 1930
},
{
- "x": 292.6309523809525,
+ "x": 292.6300048828125,
"y": 2126
},
{
@@ -2424,11 +2424,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 1512.0476190476193,
+ "x": 1512.0469970703125,
"y": 360
},
{
- "x": 1512.0476190476193,
+ "x": 1512.0469970703125,
"y": 440
}
],
@@ -2462,11 +2462,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 1492.0476190476193,
+ "x": 1492.0469970703125,
"y": 506
},
{
- "x": 1492.0476190476193,
+ "x": 1492.0469970703125,
"y": 686
}
],
@@ -2500,19 +2500,19 @@
"labelPercentage": 0,
"route": [
{
- "x": 1444.0476190476193,
+ "x": 1444.0469970703125,
"y": 752
},
{
- "x": 1444.0476190476193,
+ "x": 1444.0469970703125,
"y": 842
},
{
- "x": 762.4880952380953,
+ "x": 762.4879760742188,
"y": 842
},
{
- "x": 762.4880952380953,
+ "x": 762.4879760742188,
"y": 1032
}
],
@@ -2546,27 +2546,27 @@
"labelPercentage": 0,
"route": [
{
- "x": 699.6309523809525,
+ "x": 699.6300048828125,
"y": 1098
},
{
- "x": 699.6309523809525,
+ "x": 699.6300048828125,
"y": 1288
},
{
- "x": 866.559523809524,
+ "x": 866.5590209960938,
"y": 1288
},
{
- "x": 866.559523809524,
+ "x": 866.5590209960938,
"y": 1830
},
{
- "x": 500.29761904761915,
+ "x": 500.2969970703125,
"y": 1830
},
{
- "x": 500.29761904761915,
+ "x": 500.2969970703125,
"y": 2020
}
],
@@ -2600,19 +2600,19 @@
"labelPercentage": 0,
"route": [
{
- "x": 466.96428571428584,
+ "x": 466.9639892578125,
"y": 2086
},
{
- "x": 466.96428571428584,
+ "x": 466.9639892578125,
"y": 2276
},
{
- "x": 1125.154761904762,
+ "x": 1125.154052734375,
"y": 2276
},
{
- "x": 1125.154761904762,
+ "x": 1125.154052734375,
"y": 2366
}
],
@@ -2646,19 +2646,19 @@
"labelPercentage": 0,
"route": [
{
- "x": 1146.154761904762,
+ "x": 1146.154052734375,
"y": 2432
},
{
- "x": 1146.154761904762,
+ "x": 1146.154052734375,
"y": 2472
},
{
- "x": 755.654761904762,
+ "x": 755.6539916992188,
"y": 2472
},
{
- "x": 755.654761904762,
+ "x": 755.6539916992188,
"y": 2662
}
],
@@ -2692,11 +2692,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 140.57142857142867,
+ "x": 140.5709991455078,
"y": 1098
},
{
- "x": 140.57142857142867,
+ "x": 140.5709991455078,
"y": 1428
}
],
@@ -2730,19 +2730,19 @@
"labelPercentage": 0,
"route": [
{
- "x": 92.57142857142867,
+ "x": 92.57099914550781,
"y": 1494
},
{
- "x": 92.57142857142867,
+ "x": 92.57099914550781,
"y": 1534
},
{
- "x": 65.57142857142867,
+ "x": 65.57099914550781,
"y": 1534
},
{
- "x": 65.57142857142867,
+ "x": 65.57099914550781,
"y": 1674
}
],
@@ -2776,11 +2776,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 320.07142857142867,
+ "x": 320.0710144042969,
"y": 506
},
{
- "x": 320.07142857142867,
+ "x": 320.0710144042969,
"y": 686
}
],
@@ -2814,19 +2814,19 @@
"labelPercentage": 0,
"route": [
{
- "x": 306.73809523809535,
+ "x": 306.7380065917969,
"y": 752
},
{
- "x": 306.7380952380954,
+ "x": 306.7380065917969,
"y": 1188
},
{
- "x": 385.29761904761915,
+ "x": 385.2969970703125,
"y": 1188
},
{
- "x": 385.29761904761915,
+ "x": 385.2969970703125,
"y": 1428
}
],
@@ -2860,19 +2860,19 @@
"labelPercentage": 0,
"route": [
{
- "x": 378.63095238095246,
+ "x": 378.6300048828125,
"y": 1494
},
{
- "x": 378.63095238095246,
+ "x": 378.6300048828125,
"y": 1534
},
{
- "x": 286.4642857142858,
+ "x": 286.4639892578125,
"y": 1534
},
{
- "x": 286.4642857142858,
+ "x": 286.4639892578125,
"y": 1674
}
],
@@ -2906,19 +2906,19 @@
"labelPercentage": 0,
"route": [
{
- "x": 266.4642857142858,
+ "x": 266.4639892578125,
"y": 1740
},
{
- "x": 266.4642857142858,
+ "x": 266.4639892578125,
"y": 1880
},
{
- "x": 366.96428571428584,
+ "x": 366.9639892578125,
"y": 1880
},
{
- "x": 366.96428571428584,
+ "x": 366.9639892578125,
"y": 2020
}
],
@@ -2952,11 +2952,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 366.96428571428584,
+ "x": 366.9639892578125,
"y": 2086
},
{
- "x": 366.96428571428584,
+ "x": 366.9639892578125,
"y": 2176
},
{
@@ -3006,11 +3006,11 @@
"y": 2868
},
{
- "x": 306.6904761904763,
+ "x": 306.69000244140625,
"y": 2868
},
{
- "x": 306.6904761904763,
+ "x": 306.69000244140625,
"y": 2908
}
],
@@ -3044,11 +3044,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 1701.8809523809527,
+ "x": 1701.8800048828125,
"y": 1098
},
{
- "x": 1701.8809523809527,
+ "x": 1701.8800048828125,
"y": 1428
}
],
@@ -3082,27 +3082,27 @@
"labelPercentage": 0,
"route": [
{
- "x": 1688.5476190476193,
+ "x": 1688.5469970703125,
"y": 1494
},
{
- "x": 1688.5476190476193,
+ "x": 1688.5469970703125,
"y": 1534
},
{
- "x": 1629.3809523809527,
+ "x": 1629.3800048828125,
"y": 1534
},
{
- "x": 1629.3809523809527,
+ "x": 1629.3800048828125,
"y": 1830
},
{
- "x": 1704.321428571429,
+ "x": 1704.321044921875,
"y": 1830
},
{
- "x": 1704.321428571429,
+ "x": 1704.321044921875,
"y": 2020
}
],
@@ -3136,19 +3136,19 @@
"labelPercentage": 0,
"route": [
{
- "x": 1760.321428571429,
+ "x": 1760.321044921875,
"y": 2086
},
{
- "x": 1760.321428571429,
+ "x": 1760.321044921875,
"y": 2276
},
{
- "x": 1781.2142857142858,
+ "x": 1781.2139892578125,
"y": 2276
},
{
- "x": 1781.2142857142858,
+ "x": 1781.2139892578125,
"y": 2662
}
],
@@ -3182,11 +3182,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 1801.8809523809527,
+ "x": 1801.8800048828125,
"y": 1098
},
{
- "x": 1801.8809523809527,
+ "x": 1801.8800048828125,
"y": 1428
}
],
@@ -3220,19 +3220,19 @@
"labelPercentage": 0,
"route": [
{
- "x": 1788.5476190476193,
+ "x": 1788.5469970703125,
"y": 1494
},
{
- "x": 1788.5476190476193,
+ "x": 1788.5469970703125,
"y": 1634
},
{
- "x": 1719.8809523809527,
+ "x": 1719.8800048828125,
"y": 1634
},
{
- "x": 1719.8809523809527,
+ "x": 1719.8800048828125,
"y": 1674
}
],
@@ -3266,19 +3266,19 @@
"labelPercentage": 0,
"route": [
{
- "x": 1706.5476190476193,
+ "x": 1706.5469970703125,
"y": 1740
},
{
- "x": 1706.5476190476193,
+ "x": 1706.5469970703125,
"y": 1780
},
{
- "x": 1605.1547619047624,
+ "x": 1605.154052734375,
"y": 1780
},
{
- "x": 1605.1547619047624,
+ "x": 1605.154052734375,
"y": 2366
}
],
@@ -3312,11 +3312,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 1332.988095238095,
+ "x": 1332.988037109375,
"y": 360
},
{
- "x": 1332.988095238095,
+ "x": 1332.988037109375,
"y": 440
}
],
@@ -3350,11 +3350,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 1306.3214285714284,
+ "x": 1306.321044921875,
"y": 506
},
{
- "x": 1306.321428571429,
+ "x": 1306.321044921875,
"y": 1674
}
],
@@ -3388,11 +3388,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 1292.9880952380954,
+ "x": 1292.988037109375,
"y": 1740
},
{
- "x": 1292.9880952380954,
+ "x": 1292.988037109375,
"y": 2020
}
],
@@ -3426,19 +3426,19 @@
"labelPercentage": 0,
"route": [
{
- "x": 1292.9880952380954,
+ "x": 1292.988037109375,
"y": 2086
},
{
- "x": 1292.9880952380954,
+ "x": 1292.988037109375,
"y": 2176
},
{
- "x": 1230.154761904762,
+ "x": 1230.154052734375,
"y": 2176
},
{
- "x": 1230.154761904762,
+ "x": 1230.154052734375,
"y": 2366
}
],
@@ -3472,11 +3472,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 502.48809523809535,
+ "x": 502.4880065917969,
"y": 752
},
{
- "x": 502.48809523809535,
+ "x": 502.4880065917969,
"y": 1032
}
],
@@ -3510,19 +3510,19 @@
"labelPercentage": 0,
"route": [
{
- "x": 489.15476190476204,
+ "x": 489.15399169921875,
"y": 1098
},
{
- "x": 489.15476190476204,
+ "x": 489.15399169921875,
"y": 1138
},
{
- "x": 180.57142857142867,
+ "x": 180.5709991455078,
"y": 1138
},
{
- "x": 180.57142857142867,
+ "x": 180.5709991455078,
"y": 1428
}
],
@@ -3556,19 +3556,19 @@
"labelPercentage": 0,
"route": [
{
- "x": 124.57142857142867,
+ "x": 124.57099914550781,
"y": 1494
},
{
- "x": 124.57142857142867,
+ "x": 124.57099914550781,
"y": 1584
},
{
- "x": 95.57142857142867,
+ "x": 95.57099914550781,
"y": 1584
},
{
- "x": 95.57142857142867,
+ "x": 95.57099914550781,
"y": 1674
}
],
@@ -3602,11 +3602,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 65.57142857142867,
+ "x": 65.57099914550781,
"y": 1740
},
{
- "x": 65.57142857142867,
+ "x": 65.57099914550781,
"y": 1780
},
{
@@ -3656,11 +3656,11 @@
"y": 2572
},
{
- "x": 195.90476190476207,
+ "x": 195.9040069580078,
"y": 2572
},
{
- "x": 195.90476190476207,
+ "x": 195.9040069580078,
"y": 2662
}
],
@@ -3694,19 +3694,19 @@
"labelPercentage": 0,
"route": [
{
- "x": 209.2380952380954,
+ "x": 209.23800659179688,
"y": 2728
},
{
- "x": 209.2380952380954,
+ "x": 209.23800659179688,
"y": 2818
},
{
- "x": 340.9761904761906,
+ "x": 340.97601318359375,
"y": 2818
},
{
- "x": 340.9761904761906,
+ "x": 340.97601318359375,
"y": 2908
}
],
@@ -3740,11 +3740,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 791.5476190476192,
+ "x": 791.5469970703125,
"y": 78
},
{
- "x": 791.5476190476192,
+ "x": 791.5469970703125,
"y": 148
}
],
@@ -3778,19 +3778,19 @@
"labelPercentage": 0,
"route": [
{
- "x": 804.8809523809525,
+ "x": 804.8800048828125,
"y": 214
},
{
- "x": 804.8809523809525,
+ "x": 804.8800048828125,
"y": 254
},
{
- "x": 890.8809523809523,
+ "x": 890.8800048828125,
"y": 254
},
{
- "x": 890.8809523809523,
+ "x": 890.8800048828125,
"y": 294
}
],
@@ -3824,19 +3824,19 @@
"labelPercentage": 0,
"route": [
{
- "x": 877.5476190476189,
+ "x": 877.5469970703125,
"y": 360
},
{
- "x": 877.5476190476189,
+ "x": 877.5469970703125,
"y": 400
},
{
- "x": 771.2142857142857,
+ "x": 771.2139892578125,
"y": 400
},
{
- "x": 771.2142857142857,
+ "x": 771.2139892578125,
"y": 440
}
],
@@ -3870,19 +3870,19 @@
"labelPercentage": 0,
"route": [
{
- "x": 735.2142857142857,
+ "x": 735.2139892578125,
"y": 506
},
{
- "x": 735.2142857142857,
+ "x": 735.2139892578125,
"y": 596
},
{
- "x": 662.4880952380953,
+ "x": 662.4879760742188,
"y": 596
},
{
- "x": 662.4880952380953,
+ "x": 662.4879760742188,
"y": 686
}
],
@@ -3916,11 +3916,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 642.4880952380953,
+ "x": 642.4879760742188,
"y": 752
},
{
- "x": 642.4880952380953,
+ "x": 642.4879760742188,
"y": 1032
}
],
@@ -3954,19 +3954,19 @@
"labelPercentage": 0,
"route": [
{
- "x": 733.9166666666667,
+ "x": 733.916015625,
"y": 1098
},
{
- "x": 733.9166666666667,
+ "x": 733.916015625,
"y": 1238
},
{
- "x": 1045.5357142857142,
+ "x": 1045.5350341796875,
"y": 1238
},
{
- "x": 1045.5357142857142,
+ "x": 1045.5350341796875,
"y": 2020
}
],
@@ -4000,19 +4000,19 @@
"labelPercentage": 0,
"route": [
{
- "x": 778.2142857142858,
+ "x": 778.2139892578125,
"y": 214
},
{
- "x": 778.2142857142858,
+ "x": 778.2139892578125,
"y": 254
},
{
- "x": 632.4880952380953,
+ "x": 632.4879760742188,
"y": 254
},
{
- "x": 632.4880952380953,
+ "x": 632.4879760742188,
"y": 686
}
],
@@ -4046,19 +4046,19 @@
"labelPercentage": 0,
"route": [
{
- "x": 692.4880952380953,
+ "x": 692.4879760742188,
"y": 686
},
{
- "x": 692.4880952380953,
+ "x": 692.4879760742188,
"y": 646
},
{
- "x": 759.2142857142857,
+ "x": 759.2139892578125,
"y": 646
},
{
- "x": 759.2142857142857,
+ "x": 759.2139892578125,
"y": 506
}
],
@@ -4092,27 +4092,27 @@
"labelPercentage": 0,
"route": [
{
- "x": 783.2142857142857,
+ "x": 783.2139892578125,
"y": 506
},
{
- "x": 783.2142857142857,
+ "x": 783.2139892578125,
"y": 596
},
{
- "x": 842.4880952380953,
+ "x": 842.4879760742188,
"y": 596
},
{
- "x": 842.4880952380953,
+ "x": 842.4879760742188,
"y": 1138
},
{
- "x": 1150.321428571429,
+ "x": 1150.321044921875,
"y": 1138
},
{
- "x": 1150.321428571429,
+ "x": 1150.321044921875,
"y": 1428
}
],
@@ -4146,19 +4146,19 @@
"labelPercentage": 0,
"route": [
{
- "x": 904.2142857142857,
+ "x": 904.2139892578125,
"y": 360
},
{
- "x": 904.2142857142857,
+ "x": 904.2139892578125,
"y": 400
},
{
- "x": 963.4880952380953,
+ "x": 963.4879760742188,
"y": 400
},
{
- "x": 963.4880952380953,
+ "x": 963.4879760742188,
"y": 686
}
],
@@ -4192,19 +4192,19 @@
"labelPercentage": 0,
"route": [
{
- "x": 913.4880952380953,
+ "x": 913.4879760742188,
"y": 752
},
{
- "x": 913.4880952380953,
+ "x": 913.4879760742188,
"y": 792
},
{
- "x": 722.4880952380953,
+ "x": 722.4879760742188,
"y": 792
},
{
- "x": 722.4880952380953,
+ "x": 722.4879760742188,
"y": 1032
}
],
@@ -4238,19 +4238,19 @@
"labelPercentage": 0,
"route": [
{
- "x": 596.7738095238096,
+ "x": 596.7730102539062,
"y": 1098
},
{
- "x": 596.7738095238096,
+ "x": 596.7730102539062,
"y": 1188
},
{
- "x": 425.29761904761915,
+ "x": 425.2969970703125,
"y": 1188
},
{
- "x": 425.29761904761915,
+ "x": 425.2969970703125,
"y": 1428
}
],
@@ -4284,19 +4284,19 @@
"labelPercentage": 0,
"route": [
{
- "x": 478.63095238095246,
+ "x": 478.6300048828125,
"y": 1494
},
{
- "x": 478.63095238095246,
+ "x": 478.6300048828125,
"y": 1584
},
{
- "x": 632.9880952380954,
+ "x": 632.9879760742188,
"y": 1584
},
{
- "x": 632.9880952380954,
+ "x": 632.9879760742188,
"y": 1674
}
],
@@ -4330,19 +4330,19 @@
"labelPercentage": 0,
"route": [
{
- "x": 732.9880952380953,
+ "x": 732.9879760742188,
"y": 1740
},
{
- "x": 732.9880952380953,
+ "x": 732.9879760742188,
"y": 1880
},
{
- "x": 981.5357142857143,
+ "x": 981.5349731445312,
"y": 1880
},
{
- "x": 981.5357142857143,
+ "x": 981.5349731445312,
"y": 2020
}
],
@@ -4376,19 +4376,19 @@
"labelPercentage": 0,
"route": [
{
- "x": 333.40476190476204,
+ "x": 333.40399169921875,
"y": 752
},
{
- "x": 333.40476190476204,
+ "x": 333.40399169921875,
"y": 792
},
{
- "x": 602.4880952380953,
+ "x": 602.4879760742188,
"y": 792
},
{
- "x": 602.4880952380953,
+ "x": 602.4879760742188,
"y": 1032
}
],
@@ -4422,19 +4422,19 @@
"labelPercentage": 0,
"route": [
{
- "x": 631.059523809524,
+ "x": 631.0590209960938,
"y": 1098
},
{
- "x": 631.059523809524,
+ "x": 631.0590209960938,
"y": 1238
},
{
- "x": 465.29761904761915,
+ "x": 465.2969970703125,
"y": 1238
},
{
- "x": 465.29761904761915,
+ "x": 465.2969970703125,
"y": 1428
}
],
@@ -4468,27 +4468,27 @@
"labelPercentage": 0,
"route": [
{
- "x": 411.9642857142858,
+ "x": 411.9639892578125,
"y": 1494
},
{
- "x": 411.9642857142858,
+ "x": 411.9639892578125,
"y": 1584
},
{
- "x": 377.46428571428584,
+ "x": 377.4639892578125,
"y": 1584
},
{
- "x": 377.46428571428584,
+ "x": 377.4639892578125,
"y": 1780
},
{
- "x": 433.6309523809525,
+ "x": 433.6300048828125,
"y": 1780
},
{
- "x": 433.6309523809525,
+ "x": 433.6300048828125,
"y": 2020
}
],
@@ -4522,11 +4522,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 682.4880952380953,
+ "x": 682.4879760742188,
"y": 752
},
{
- "x": 682.4880952380953,
+ "x": 682.4879760742188,
"y": 1032
}
],
@@ -4560,19 +4560,19 @@
"labelPercentage": 0,
"route": [
{
- "x": 768.2023809523811,
+ "x": 768.2020263671875,
"y": 1098
},
{
- "x": 768.2023809523811,
+ "x": 768.2020263671875,
"y": 1188
},
{
- "x": 1120.321428571429,
+ "x": 1120.321044921875,
"y": 1188
},
{
- "x": 1120.321428571429,
+ "x": 1120.321044921875,
"y": 1428
}
],
@@ -4606,19 +4606,19 @@
"labelPercentage": 0,
"route": [
{
- "x": 1151.821428571429,
+ "x": 1151.821044921875,
"y": 1494
},
{
- "x": 1151.821428571429,
+ "x": 1151.821044921875,
"y": 2176
},
{
- "x": 1195.154761904762,
+ "x": 1195.154052734375,
"y": 2176
},
{
- "x": 1195.154761904762,
+ "x": 1195.154052734375,
"y": 2366
}
],
@@ -4652,11 +4652,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 1212.654761904762,
+ "x": 1212.654052734375,
"y": 2432
},
{
- "x": 1212.654761904762,
+ "x": 1212.654052734375,
"y": 2662
}
],
@@ -4690,11 +4690,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 1227.3214285714284,
+ "x": 1227.321044921875,
"y": 2728
},
{
- "x": 1227.3214285714284,
+ "x": 1227.321044921875,
"y": 2908
}
],
@@ -4728,11 +4728,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 1532.0476190476193,
+ "x": 1532.0469970703125,
"y": 506
},
{
- "x": 1532.0476190476193,
+ "x": 1532.0469970703125,
"y": 686
}
],
@@ -4766,19 +4766,19 @@
"labelPercentage": 0,
"route": [
{
- "x": 1476.0476190476193,
+ "x": 1476.0469970703125,
"y": 752
},
{
- "x": 1476.0476190476193,
+ "x": 1476.0469970703125,
"y": 2522
},
{
- "x": 787.654761904762,
+ "x": 787.6539916992188,
"y": 2522
},
{
- "x": 787.654761904762,
+ "x": 787.6539916992188,
"y": 2662
}
],
@@ -4812,11 +4812,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 1911.8809523809523,
+ "x": 1911.8800048828125,
"y": 1494
},
{
- "x": 1911.8809523809523,
+ "x": 1911.8800048828125,
"y": 1674
}
],
@@ -4850,27 +4850,27 @@
"labelPercentage": 0,
"route": [
{
- "x": 1815.2142857142858,
+ "x": 1815.2139892578125,
"y": 1494
},
{
- "x": 1815.2142857142858,
+ "x": 1815.2139892578125,
"y": 1534
},
{
- "x": 1978.5476190476193,
+ "x": 1978.5469970703125,
"y": 1534
},
{
- "x": 1978.5476190476193,
+ "x": 1978.5469970703125,
"y": 2226
},
{
- "x": 1707.8809523809527,
+ "x": 1707.8800048828125,
"y": 2226
},
{
- "x": 1707.8809523809527,
+ "x": 1707.8800048828125,
"y": 2366
}
],
@@ -4904,19 +4904,19 @@
"labelPercentage": 0,
"route": [
{
- "x": 1581.2142857142858,
+ "x": 1581.2139892578125,
"y": 2432
},
{
- "x": 1581.2142857142858,
+ "x": 1581.2139892578125,
"y": 2622
},
{
- "x": 1308.654761904762,
+ "x": 1308.654052734375,
"y": 2622
},
{
- "x": 1308.654761904762,
+ "x": 1308.654052734375,
"y": 2662
}
],
@@ -4950,11 +4950,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 1260.654761904762,
+ "x": 1260.654052734375,
"y": 2728
},
{
- "x": 1260.654761904762,
+ "x": 1260.654052734375,
"y": 2908
}
],
@@ -4988,19 +4988,19 @@
"labelPercentage": 0,
"route": [
{
- "x": 1715.2142857142858,
+ "x": 1715.2139892578125,
"y": 1494
},
{
- "x": 1715.2142857142858,
+ "x": 1715.2139892578125,
"y": 1584
},
{
- "x": 1885.2142857142858,
+ "x": 1885.2139892578125,
"y": 1584
},
{
- "x": 1885.2142857142858,
+ "x": 1885.2139892578125,
"y": 1674
}
],
@@ -5034,19 +5034,19 @@
"labelPercentage": 0,
"route": [
{
- "x": 1885.2142857142858,
+ "x": 1885.2139892578125,
"y": 1740
},
{
- "x": 1885.2142857142858,
+ "x": 1885.2139892578125,
"y": 1780
},
{
- "x": 1784.321428571429,
+ "x": 1784.321044921875,
"y": 1780
},
{
- "x": 1784.321428571429,
+ "x": 1784.321044921875,
"y": 2020
}
],
@@ -5080,11 +5080,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 1813.2142857142858,
+ "x": 1813.2139892578125,
"y": 2086
},
{
- "x": 1813.2142857142858,
+ "x": 1813.2139892578125,
"y": 2662
}
],
@@ -5118,19 +5118,19 @@
"labelPercentage": 0,
"route": [
{
- "x": 1763.2142857142858,
+ "x": 1763.2139892578125,
"y": 2728
},
{
- "x": 1763.2142857142858,
+ "x": 1763.2139892578125,
"y": 2818
},
{
- "x": 1783.321428571429,
+ "x": 1783.321044921875,
"y": 2818
},
{
- "x": 1783.321428571429,
+ "x": 1783.321044921875,
"y": 2908
}
],
@@ -5164,19 +5164,19 @@
"labelPercentage": 0,
"route": [
{
- "x": 807.2142857142857,
+ "x": 807.2139892578125,
"y": 506
},
{
- "x": 807.2142857142857,
+ "x": 807.2139892578125,
"y": 546
},
{
- "x": 923.4880952380953,
+ "x": 923.4879760742188,
"y": 546
},
{
- "x": 923.4880952380953,
+ "x": 923.4879760742188,
"y": 686
}
],
@@ -5210,27 +5210,27 @@
"labelPercentage": 0,
"route": [
{
- "x": 973.4880952380953,
+ "x": 973.4879760742188,
"y": 752
},
{
- "x": 973.4880952380953,
+ "x": 973.4879760742188,
"y": 892
},
{
- "x": 1229.5476190476193,
+ "x": 1229.5469970703125,
"y": 892
},
{
- "x": 1229.5476190476193,
+ "x": 1229.5469970703125,
"y": 1138
},
{
- "x": 1180.321428571429,
+ "x": 1180.321044921875,
"y": 1138
},
{
- "x": 1180.321428571429,
+ "x": 1180.321044921875,
"y": 1428
}
],
@@ -5264,19 +5264,19 @@
"labelPercentage": 0,
"route": [
{
- "x": 1120.321428571429,
+ "x": 1120.321044921875,
"y": 1494
},
{
- "x": 1120.321428571429,
+ "x": 1120.321044921875,
"y": 1534
},
{
- "x": 1097.0357142857147,
+ "x": 1097.0350341796875,
"y": 1534
},
{
- "x": 1097.0357142857147,
+ "x": 1097.0350341796875,
"y": 2020
}
],
@@ -5310,19 +5310,19 @@
"labelPercentage": 0,
"route": [
{
- "x": 943.4880952380953,
+ "x": 943.4879760742188,
"y": 752
},
{
- "x": 943.4880952380953,
+ "x": 943.4879760742188,
"y": 1338
},
{
- "x": 749.654761904762,
+ "x": 749.6539916992188,
"y": 1338
},
{
- "x": 749.654761904762,
+ "x": 749.6539916992188,
"y": 1428
}
],
@@ -5356,11 +5356,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 699.654761904762,
+ "x": 699.6539916992188,
"y": 1494
},
{
- "x": 699.654761904762,
+ "x": 699.6539916992188,
"y": 1674
}
],
@@ -5394,19 +5394,19 @@
"labelPercentage": 0,
"route": [
{
- "x": 766.3214285714287,
+ "x": 766.3209838867188,
"y": 1740
},
{
- "x": 766.3214285714287,
+ "x": 766.3209838867188,
"y": 1780
},
{
- "x": 1013.5357142857143,
+ "x": 1013.5349731445312,
"y": 1780
},
{
- "x": 1013.5357142857143,
+ "x": 1013.5349731445312,
"y": 2020
}
],
@@ -5440,19 +5440,19 @@
"labelPercentage": 0,
"route": [
{
- "x": 1519.0476190476193,
+ "x": 1519.0469970703125,
"y": 752
},
{
- "x": 1519.0476190476193,
+ "x": 1519.0469970703125,
"y": 2326
},
{
- "x": 1335.154761904762,
+ "x": 1335.154052734375,
"y": 2326
},
{
- "x": 1335.154761904762,
+ "x": 1335.154052734375,
"y": 2366
}
],
@@ -5486,19 +5486,19 @@
"labelPercentage": 0,
"route": [
{
- "x": 665.3452380952382,
+ "x": 665.344970703125,
"y": 1098
},
{
- "x": 665.3452380952382,
+ "x": 665.344970703125,
"y": 1388
},
{
- "x": 505.29761904761915,
+ "x": 505.2969970703125,
"y": 1388
},
{
- "x": 505.29761904761915,
+ "x": 505.2969970703125,
"y": 1428
}
],
@@ -5532,19 +5532,19 @@
"labelPercentage": 0,
"route": [
{
- "x": 445.29761904761915,
+ "x": 445.2969970703125,
"y": 1494
},
{
- "x": 445.29761904761915,
+ "x": 445.2969970703125,
"y": 1634
},
{
- "x": 462.96428571428584,
+ "x": 462.9639892578125,
"y": 1634
},
{
- "x": 462.96428571428584,
+ "x": 462.9639892578125,
"y": 2020
}
],
@@ -5578,19 +5578,19 @@
"labelPercentage": 0,
"route": [
{
- "x": 500.29761904761915,
+ "x": 500.2969970703125,
"y": 2086
},
{
- "x": 500.29761904761915,
+ "x": 500.2969970703125,
"y": 2226
},
{
- "x": 1160.154761904762,
+ "x": 1160.154052734375,
"y": 2226
},
{
- "x": 1160.154761904762,
+ "x": 1160.154052734375,
"y": 2366
}
],
@@ -5624,19 +5624,19 @@
"labelPercentage": 0,
"route": [
{
- "x": 515.8214285714287,
+ "x": 515.8209838867188,
"y": 1098
},
{
- "x": 515.8214285714287,
+ "x": 515.8209838867188,
"y": 1338
},
{
- "x": 709.654761904762,
+ "x": 709.6539916992188,
"y": 1338
},
{
- "x": 709.654761904762,
+ "x": 709.6539916992188,
"y": 1428
}
],
@@ -5670,11 +5670,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 732.9880952380953,
+ "x": 732.9879760742188,
"y": 1494
},
{
- "x": 732.9880952380953,
+ "x": 732.9879760742188,
"y": 1674
}
],
@@ -5708,27 +5708,27 @@
"labelPercentage": 0,
"route": [
{
- "x": 632.9880952380954,
+ "x": 632.9879760742188,
"y": 1740
},
{
- "x": 632.9880952380954,
+ "x": 632.9879760742188,
"y": 1780
},
{
- "x": 596.4880952380954,
+ "x": 596.4879760742188,
"y": 1780
},
{
- "x": 596.4880952380954,
+ "x": 596.4879760742188,
"y": 2768
},
{
- "x": 409.54761904761915,
+ "x": 409.5469970703125,
"y": 2768
},
{
- "x": 409.54761904761915,
+ "x": 409.5469970703125,
"y": 2908
}
],
@@ -5762,19 +5762,19 @@
"labelPercentage": 0,
"route": [
{
- "x": 511.9642857142858,
+ "x": 511.9639892578125,
"y": 1494
},
{
- "x": 511.9642857142858,
+ "x": 511.9639892578125,
"y": 1534
},
{
- "x": 666.3214285714287,
+ "x": 666.3209838867188,
"y": 1534
},
{
- "x": 666.3214285714287,
+ "x": 666.3209838867188,
"y": 1674
}
],
@@ -5808,27 +5808,27 @@
"labelPercentage": 0,
"route": [
{
- "x": 666.3214285714287,
+ "x": 666.3209838867188,
"y": 1740
},
{
- "x": 666.3214285714287,
+ "x": 666.3209838867188,
"y": 1880
},
{
- "x": 618.654761904762,
+ "x": 618.6539916992188,
"y": 1880
},
{
- "x": 618.654761904762,
+ "x": 618.6539916992188,
"y": 2818
},
{
- "x": 443.8333333333335,
+ "x": 443.8330078125,
"y": 2818
},
{
- "x": 443.8333333333335,
+ "x": 443.8330078125,
"y": 2908
}
],
@@ -5862,19 +5862,19 @@
"labelPercentage": 0,
"route": [
{
- "x": 156.57142857142867,
+ "x": 156.5709991455078,
"y": 1494
},
{
- "x": 156.57142857142867,
+ "x": 156.5709991455078,
"y": 1634
},
{
- "x": 125.57142857142867,
+ "x": 125.57099914550781,
"y": 1634
},
{
- "x": 125.57142857142867,
+ "x": 125.57099914550781,
"y": 1674
}
],
@@ -5908,11 +5908,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 95.57142857142867,
+ "x": 95.57099914550781,
"y": 1740
},
{
- "x": 95.57142857142867,
+ "x": 95.57099914550781,
"y": 1830
},
{
@@ -5954,19 +5954,19 @@
"labelPercentage": 0,
"route": [
{
- "x": 1911.8809523809523,
+ "x": 1911.8800048828125,
"y": 1740
},
{
- "x": 1911.8809523809523,
+ "x": 1911.8800048828125,
"y": 2768
},
{
- "x": 1843.321428571429,
+ "x": 1843.321044921875,
"y": 2768
},
{
- "x": 1843.321428571429,
+ "x": 1843.321044921875,
"y": 2908
}
],
@@ -6000,11 +6000,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 1744.321428571429,
+ "x": 1744.321044921875,
"y": 1740
},
{
- "x": 1744.321428571429,
+ "x": 1744.321044921875,
"y": 2020
}
],
@@ -6038,19 +6038,19 @@
"labelPercentage": 0,
"route": [
{
- "x": 1696.321428571429,
+ "x": 1696.321044921875,
"y": 2086
},
{
- "x": 1696.321428571429,
+ "x": 1696.321044921875,
"y": 2126
},
{
- "x": 1641.2142857142858,
+ "x": 1641.2139892578125,
"y": 2126
},
{
- "x": 1641.2142857142858,
+ "x": 1641.2139892578125,
"y": 2366
}
],
@@ -6084,19 +6084,19 @@
"labelPercentage": 0,
"route": [
{
- "x": 296.4642857142858,
+ "x": 296.4639892578125,
"y": 1740
},
{
- "x": 296.4642857142858,
+ "x": 296.4639892578125,
"y": 1830
},
{
- "x": 400.29761904761915,
+ "x": 400.2969970703125,
"y": 1830
},
{
- "x": 400.29761904761915,
+ "x": 400.2969970703125,
"y": 2020
}
],
@@ -6130,19 +6130,19 @@
"labelPercentage": 0,
"route": [
{
- "x": 400.29761904761915,
+ "x": 400.2969970703125,
"y": 2086
},
{
- "x": 400.29761904761915,
+ "x": 400.2969970703125,
"y": 2522
},
{
- "x": 691.654761904762,
+ "x": 691.6539916992188,
"y": 2522
},
{
- "x": 691.654761904762,
+ "x": 691.6539916992188,
"y": 2662
}
],
@@ -6176,19 +6176,19 @@
"labelPercentage": 0,
"route": [
{
- "x": 1728.321428571429,
+ "x": 1728.321044921875,
"y": 2086
},
{
- "x": 1728.321428571429,
+ "x": 1728.321044921875,
"y": 2176
},
{
- "x": 1674.5476190476193,
+ "x": 1674.5469970703125,
"y": 2176
},
{
- "x": 1674.5476190476193,
+ "x": 1674.5469970703125,
"y": 2366
}
],
@@ -6222,19 +6222,19 @@
"labelPercentage": 0,
"route": [
{
- "x": 1701.2142857142858,
+ "x": 1701.2139892578125,
"y": 2432
},
{
- "x": 1701.2142857142858,
+ "x": 1701.2139892578125,
"y": 2472
},
{
- "x": 1753.2142857142858,
+ "x": 1753.2139892578125,
"y": 2472
},
{
- "x": 1753.2142857142858,
+ "x": 1753.2139892578125,
"y": 2662
}
],
@@ -6268,11 +6268,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 1813.321428571429,
+ "x": 1813.321044921875,
"y": 2728
},
{
- "x": 1813.321428571429,
+ "x": 1813.321044921875,
"y": 2908
}
],
@@ -6306,11 +6306,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 1319.654761904762,
+ "x": 1319.654052734375,
"y": 1740
},
{
- "x": 1319.654761904762,
+ "x": 1319.654052734375,
"y": 2020
}
],
@@ -6344,19 +6344,19 @@
"labelPercentage": 0,
"route": [
{
- "x": 1319.654761904762,
+ "x": 1319.654052734375,
"y": 2086
},
{
- "x": 1319.654761904762,
+ "x": 1319.654052734375,
"y": 2226
},
{
- "x": 1265.154761904762,
+ "x": 1265.154052734375,
"y": 2226
},
{
- "x": 1265.154761904762,
+ "x": 1265.154052734375,
"y": 2366
}
],
@@ -6390,11 +6390,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 1244.654761904762,
+ "x": 1244.654052734375,
"y": 2432
},
{
- "x": 1244.654761904762,
+ "x": 1244.654052734375,
"y": 2662
}
],
@@ -6428,11 +6428,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 766.3214285714287,
+ "x": 766.3209838867188,
"y": 1494
},
{
- "x": 766.3214285714287,
+ "x": 766.3209838867188,
"y": 1674
}
],
@@ -6466,19 +6466,19 @@
"labelPercentage": 0,
"route": [
{
- "x": 1180.321428571429,
+ "x": 1180.321044921875,
"y": 1494
},
{
- "x": 1180.321428571429,
+ "x": 1180.321044921875,
"y": 2126
},
{
- "x": 1574.5476190476193,
+ "x": 1574.5469970703125,
"y": 2126
},
{
- "x": 1574.5476190476193,
+ "x": 1574.5469970703125,
"y": 2366
}
],
@@ -6512,19 +6512,19 @@
"labelPercentage": 0,
"route": [
{
- "x": 1624.5476190476193,
+ "x": 1624.5469970703125,
"y": 2432
},
{
- "x": 1624.5476190476193,
+ "x": 1624.5469970703125,
"y": 2768
},
{
- "x": 1327.3214285714284,
+ "x": 1327.321044921875,
"y": 2768
},
{
- "x": 1327.3214285714284,
+ "x": 1327.321044921875,
"y": 2908
}
],
@@ -6558,19 +6558,19 @@
"labelPercentage": 0,
"route": [
{
- "x": 433.6309523809525,
+ "x": 433.6300048828125,
"y": 2086
},
{
- "x": 433.6309523809525,
+ "x": 433.6300048828125,
"y": 2472
},
{
- "x": 723.654761904762,
+ "x": 723.6539916992188,
"y": 2472
},
{
- "x": 723.654761904762,
+ "x": 723.6539916992188,
"y": 2662
}
],
@@ -6604,27 +6604,27 @@
"labelPercentage": 0,
"route": [
{
- "x": 125.57142857142867,
+ "x": 125.57099914550781,
"y": 1740
},
{
- "x": 125.57142857142867,
+ "x": 125.57099914550781,
"y": 1980
},
{
- "x": 269.2380952380954,
+ "x": 269.2380065917969,
"y": 1980
},
{
- "x": 269.2380952380954,
+ "x": 269.2380065917969,
"y": 2472
},
{
- "x": 222.57142857142873,
+ "x": 222.5709991455078,
"y": 2472
},
{
- "x": 222.57142857142873,
+ "x": 222.5709991455078,
"y": 2662
}
],
@@ -6658,19 +6658,19 @@
"labelPercentage": 0,
"route": [
{
- "x": 1646.7142857142858,
+ "x": 1646.7139892578125,
"y": 2432
},
{
- "x": 1646.7142857142858,
+ "x": 1646.7139892578125,
"y": 2818
},
{
- "x": 1360.654761904762,
+ "x": 1360.654052734375,
"y": 2818
},
{
- "x": 1360.654761904762,
+ "x": 1360.654052734375,
"y": 2908
}
],
@@ -6704,27 +6704,27 @@
"labelPercentage": 0,
"route": [
{
- "x": 699.654761904762,
+ "x": 699.6539916992188,
"y": 1740
},
{
- "x": 699.654761904762,
+ "x": 699.6539916992188,
"y": 1930
},
{
- "x": 859.654761904762,
+ "x": 859.6539916992188,
"y": 1930
},
{
- "x": 859.654761904762,
+ "x": 859.6539916992188,
"y": 2868
},
{
- "x": 478.1190476190477,
+ "x": 478.1189880371094,
"y": 2868
},
{
- "x": 478.1190476190477,
+ "x": 478.1189880371094,
"y": 2908
}
],
@@ -6758,11 +6758,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 1276.654761904762,
+ "x": 1276.654052734375,
"y": 2432
},
{
- "x": 1276.654761904762,
+ "x": 1276.654052734375,
"y": 2662
}
],
@@ -6804,11 +6804,11 @@
"y": 2522
},
{
- "x": 375.26190476190493,
+ "x": 375.260986328125,
"y": 2522
},
{
- "x": 375.26190476190493,
+ "x": 375.260986328125,
"y": 2908
}
],
@@ -6842,11 +6842,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 1293.9880952380954,
+ "x": 1293.988037109375,
"y": 2728
},
{
- "x": 1293.9880952380954,
+ "x": 1293.988037109375,
"y": 2908
}
],
diff --git a/e2etests/testdata/stable/us_map/elk/sketch.exp.svg b/e2etests/testdata/stable/us_map/elk/sketch.exp.svg
index 3f369c94c..70c48ca13 100644
--- a/e2etests/testdata/stable/us_map/elk/sketch.exp.svg
+++ b/e2etests/testdata/stable/us_map/elk/sketch.exp.svg
@@ -1,10 +1,10 @@
-AL FL GA MS TN AK AZ CA NV NM UT AR LA MO OK TX OR CO KS NE WY CT MA NY RI DE MD NJ PA NC SC HI ID MT WA IL IN IA MI KY WI OH MN SD VA WV ME NH VT ND
+ .d2-1628388421 .fill-N1{fill:#0A0F25;}
+ .d2-1628388421 .fill-N2{fill:#676C7E;}
+ .d2-1628388421 .fill-N3{fill:#9499AB;}
+ .d2-1628388421 .fill-N4{fill:#CFD2DD;}
+ .d2-1628388421 .fill-N5{fill:#DEE1EB;}
+ .d2-1628388421 .fill-N6{fill:#EEF1F8;}
+ .d2-1628388421 .fill-N7{fill:#FFFFFF;}
+ .d2-1628388421 .fill-B1{fill:#0D32B2;}
+ .d2-1628388421 .fill-B2{fill:#0D32B2;}
+ .d2-1628388421 .fill-B3{fill:#E3E9FD;}
+ .d2-1628388421 .fill-B4{fill:#E3E9FD;}
+ .d2-1628388421 .fill-B5{fill:#EDF0FD;}
+ .d2-1628388421 .fill-B6{fill:#F7F8FE;}
+ .d2-1628388421 .fill-AA2{fill:#4A6FF3;}
+ .d2-1628388421 .fill-AA4{fill:#EDF0FD;}
+ .d2-1628388421 .fill-AA5{fill:#F7F8FE;}
+ .d2-1628388421 .fill-AB4{fill:#EDF0FD;}
+ .d2-1628388421 .fill-AB5{fill:#F7F8FE;}
+ .d2-1628388421 .stroke-N1{stroke:#0A0F25;}
+ .d2-1628388421 .stroke-N2{stroke:#676C7E;}
+ .d2-1628388421 .stroke-N3{stroke:#9499AB;}
+ .d2-1628388421 .stroke-N4{stroke:#CFD2DD;}
+ .d2-1628388421 .stroke-N5{stroke:#DEE1EB;}
+ .d2-1628388421 .stroke-N6{stroke:#EEF1F8;}
+ .d2-1628388421 .stroke-N7{stroke:#FFFFFF;}
+ .d2-1628388421 .stroke-B1{stroke:#0D32B2;}
+ .d2-1628388421 .stroke-B2{stroke:#0D32B2;}
+ .d2-1628388421 .stroke-B3{stroke:#E3E9FD;}
+ .d2-1628388421 .stroke-B4{stroke:#E3E9FD;}
+ .d2-1628388421 .stroke-B5{stroke:#EDF0FD;}
+ .d2-1628388421 .stroke-B6{stroke:#F7F8FE;}
+ .d2-1628388421 .stroke-AA2{stroke:#4A6FF3;}
+ .d2-1628388421 .stroke-AA4{stroke:#EDF0FD;}
+ .d2-1628388421 .stroke-AA5{stroke:#F7F8FE;}
+ .d2-1628388421 .stroke-AB4{stroke:#EDF0FD;}
+ .d2-1628388421 .stroke-AB5{stroke:#F7F8FE;}
+ .d2-1628388421 .background-color-N1{background-color:#0A0F25;}
+ .d2-1628388421 .background-color-N2{background-color:#676C7E;}
+ .d2-1628388421 .background-color-N3{background-color:#9499AB;}
+ .d2-1628388421 .background-color-N4{background-color:#CFD2DD;}
+ .d2-1628388421 .background-color-N5{background-color:#DEE1EB;}
+ .d2-1628388421 .background-color-N6{background-color:#EEF1F8;}
+ .d2-1628388421 .background-color-N7{background-color:#FFFFFF;}
+ .d2-1628388421 .background-color-B1{background-color:#0D32B2;}
+ .d2-1628388421 .background-color-B2{background-color:#0D32B2;}
+ .d2-1628388421 .background-color-B3{background-color:#E3E9FD;}
+ .d2-1628388421 .background-color-B4{background-color:#E3E9FD;}
+ .d2-1628388421 .background-color-B5{background-color:#EDF0FD;}
+ .d2-1628388421 .background-color-B6{background-color:#F7F8FE;}
+ .d2-1628388421 .background-color-AA2{background-color:#4A6FF3;}
+ .d2-1628388421 .background-color-AA4{background-color:#EDF0FD;}
+ .d2-1628388421 .background-color-AA5{background-color:#F7F8FE;}
+ .d2-1628388421 .background-color-AB4{background-color:#EDF0FD;}
+ .d2-1628388421 .background-color-AB5{background-color:#F7F8FE;}
+ .d2-1628388421 .color-N1{color:#0A0F25;}
+ .d2-1628388421 .color-N2{color:#676C7E;}
+ .d2-1628388421 .color-N3{color:#9499AB;}
+ .d2-1628388421 .color-N4{color:#CFD2DD;}
+ .d2-1628388421 .color-N5{color:#DEE1EB;}
+ .d2-1628388421 .color-N6{color:#EEF1F8;}
+ .d2-1628388421 .color-N7{color:#FFFFFF;}
+ .d2-1628388421 .color-B1{color:#0D32B2;}
+ .d2-1628388421 .color-B2{color:#0D32B2;}
+ .d2-1628388421 .color-B3{color:#E3E9FD;}
+ .d2-1628388421 .color-B4{color:#E3E9FD;}
+ .d2-1628388421 .color-B5{color:#EDF0FD;}
+ .d2-1628388421 .color-B6{color:#F7F8FE;}
+ .d2-1628388421 .color-AA2{color:#4A6FF3;}
+ .d2-1628388421 .color-AA4{color:#EDF0FD;}
+ .d2-1628388421 .color-AA5{color:#F7F8FE;}
+ .d2-1628388421 .color-AB4{color:#EDF0FD;}
+ .d2-1628388421 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>AL FL GA MS TN AK AZ CA NV NM UT AR LA MO OK TX OR CO KS NE WY CT MA NY RI DE MD NJ PA NC SC HI ID MT WA IL IN IA MI KY WI OH MN SD VA WV ME NH VT ND
\ No newline at end of file
diff --git a/e2etests/testdata/themes/dark_terrastruct_flagship/dagre/board.exp.json b/e2etests/testdata/themes/dark_terrastruct_flagship/dagre/board.exp.json
index dff52458e..d7c7fe141 100644
--- a/e2etests/testdata/themes/dark_terrastruct_flagship/dagre/board.exp.json
+++ b/e2etests/testdata/themes/dark_terrastruct_flagship/dagre/board.exp.json
@@ -10,8 +10,8 @@
"x": 0,
"y": 438
},
- "width": 448,
- "height": 1565,
+ "width": 451,
+ "height": 1585,
"opacity": 1,
"strokeDash": 0,
"strokeWidth": 2,
@@ -51,7 +51,7 @@
"x": 95,
"y": 503
},
- "width": 333,
+ "width": 336,
"height": 657,
"opacity": 1,
"strokeDash": 0,
@@ -89,8 +89,8 @@
"id": "network.cell tower.satellites",
"type": "stored_data",
"pos": {
- "x": 142,
- "y": 705
+ "x": 140,
+ "y": 710
},
"width": 130,
"height": 66,
@@ -172,10 +172,10 @@
"type": "rectangle",
"pos": {
"x": 20,
- "y": 1822
+ "y": 1832
},
- "width": 146,
- "height": 151,
+ "width": 147,
+ "height": 161,
"opacity": 1,
"strokeDash": 0,
"strokeWidth": 2,
@@ -213,7 +213,7 @@
"type": "hexagon",
"pos": {
"x": 67,
- "y": 1863
+ "y": 1878
},
"width": 59,
"height": 69,
@@ -253,11 +253,11 @@
"id": "network.data processor",
"type": "rectangle",
"pos": {
- "x": 187,
+ "x": 182,
"y": 1317
},
- "width": 179,
- "height": 182,
+ "width": 189,
+ "height": 192,
"opacity": 1,
"strokeDash": 0,
"strokeWidth": 2,
@@ -294,8 +294,8 @@
"id": "network.data processor.storage",
"type": "cylinder",
"pos": {
- "x": 227,
- "y": 1349
+ "x": 222,
+ "y": 1359
},
"width": 99,
"height": 118,
@@ -376,8 +376,8 @@
"id": "api server",
"type": "rectangle",
"pos": {
- "x": 488,
- "y": 1579
+ "x": 491,
+ "y": 1589
},
"width": 116,
"height": 66,
@@ -417,8 +417,8 @@
"id": "logs",
"type": "page",
"pos": {
- "x": 510,
- "y": 1816
+ "x": 507,
+ "y": 1836
},
"width": 73,
"height": 87,
@@ -458,7 +458,7 @@
"id": "users",
"type": "sql_table",
"pos": {
- "x": 304,
+ "x": 306,
"y": 30
},
"width": 208,
@@ -642,7 +642,7 @@
"id": "products",
"type": "class",
"pos": {
- "x": 572,
+ "x": 574,
"y": 0
},
"width": 242,
@@ -706,7 +706,7 @@
"id": "markdown",
"type": "text",
"pos": {
- "x": 874,
+ "x": 876,
"y": 79
},
"width": 97,
@@ -746,7 +746,7 @@
"id": "code",
"type": "code",
"pos": {
- "x": 488,
+ "x": 491,
"y": 497
},
"width": 868,
@@ -786,7 +786,7 @@
"id": "ex",
"type": "text",
"pos": {
- "x": 720,
+ "x": 723,
"y": 1031
},
"width": 404,
@@ -849,19 +849,19 @@
"labelPercentage": 0,
"route": [
{
- "x": 202,
- "y": 772
+ "x": 204,
+ "y": 777
},
{
- "x": 176.8,
- "y": 956
+ "x": 179.1999969482422,
+ "y": 957
},
{
- "x": 184.1,
- "y": 1014.2
+ "x": 186.39999389648438,
+ "y": 1014.2000122070312
},
{
- "x": 238.5,
+ "x": 240,
"y": 1063
}
],
@@ -896,19 +896,19 @@
"labelPercentage": 0,
"route": [
{
- "x": 212,
- "y": 772
+ "x": 215,
+ "y": 777
},
{
- "x": 237.2,
- "y": 956
+ "x": 239.8000030517578,
+ "y": 957
},
{
- "x": 247.7,
- "y": 1014.2
+ "x": 249.8000030517578,
+ "y": 1014.2000122070312
},
{
- "x": 264.5,
+ "x": 265,
"y": 1063
}
],
@@ -943,19 +943,19 @@
"labelPercentage": 0,
"route": [
{
- "x": 225,
- "y": 772
+ "x": 230,
+ "y": 777
},
{
- "x": 323.6,
- "y": 956
+ "x": 326.6000061035156,
+ "y": 957
},
{
- "x": 338.85,
- "y": 1014.2
+ "x": 341.1499938964844,
+ "y": 1014.2000122070312
},
{
- "x": 301.25,
+ "x": 302.75,
"y": 1063
}
],
@@ -995,11 +995,11 @@
},
{
"x": 276,
- "y": 1154.1
+ "y": 1154.0999755859375
},
{
"x": 276,
- "y": 1172.6
+ "y": 1172.5999755859375
},
{
"x": 276,
@@ -1007,11 +1007,11 @@
},
{
"x": 276,
- "y": 1208.9
+ "y": 1208.9000244140625
},
{
"x": 276,
- "y": 1295.2
+ "y": 1295.199951171875
},
{
"x": 276,
@@ -1049,19 +1049,19 @@
"labelPercentage": 0,
"route": [
{
- "x": 154,
+ "x": 155,
"y": 169
},
{
- "x": 196.4,
+ "x": 198.60000610351562,
"y": 303
},
{
- "x": 207,
- "y": 411.2
+ "x": 209.5,
+ "y": 411.20001220703125
},
{
- "x": 207,
+ "x": 209.5,
"y": 468
}
],
@@ -1100,12 +1100,12 @@
"y": 169
},
{
- "x": 86.6,
+ "x": 86.5999984741211,
"y": 303
},
{
"x": 74.75,
- "y": 348.6
+ "y": 348.6000061035156
},
{
"x": 74.75,
@@ -1113,7 +1113,7 @@
},
{
"x": 74.75,
- "y": 384.9
+ "y": 384.8999938964844
},
{
"x": 74.75,
@@ -1129,7 +1129,7 @@
},
{
"x": 74.75,
- "y": 497.6
+ "y": 497.6000061035156
},
{
"x": 74.75,
@@ -1137,11 +1137,11 @@
},
{
"x": 74.75,
- "y": 649.4
+ "y": 649.4000244140625
},
{
"x": 74.75,
- "y": 752.7
+ "y": 752.7000122070312
},
{
"x": 74.75,
@@ -1149,11 +1149,11 @@
},
{
"x": 74.75,
- "y": 910.8
+ "y": 910.7999877929688
},
{
"x": 74.75,
- "y": 982.2
+ "y": 982.2000122070312
},
{
"x": 74.75,
@@ -1161,11 +1161,11 @@
},
{
"x": 74.75,
- "y": 1038.3
+ "y": 1038.300048828125
},
{
"x": 74.75,
- "y": 1073.6
+ "y": 1073.5999755859375
},
{
"x": 74.75,
@@ -1173,11 +1173,11 @@
},
{
"x": 74.75,
- "y": 1123.4
+ "y": 1123.4000244140625
},
{
"x": 74.75,
- "y": 1152.1
+ "y": 1152.0999755859375
},
{
"x": 74.75,
@@ -1185,11 +1185,11 @@
},
{
"x": 74.75,
- "y": 1188.4
+ "y": 1188.4000244140625
},
{
"x": 74.75,
- "y": 1212.6
+ "y": 1212.5999755859375
},
{
"x": 74.75,
@@ -1197,75 +1197,75 @@
},
{
"x": 74.75,
- "y": 1248.9
+ "y": 1248.9000244140625
},
{
"x": 74.75,
- "y": 1282.8
+ "y": 1283.800048828125
},
{
"x": 74.75,
- "y": 1315.5
+ "y": 1318
},
{
"x": 74.75,
- "y": 1348.2
+ "y": 1352.199951171875
},
{
"x": 74.75,
- "y": 1391.8
+ "y": 1397.800048828125
},
{
"x": 74.75,
- "y": 1424.5
+ "y": 1432
},
{
"x": 74.75,
- "y": 1457.2
+ "y": 1466.199951171875
},
{
"x": 74.75,
- "y": 1489
+ "y": 1499
},
{
"x": 74.75,
- "y": 1504
+ "y": 1514
},
{
"x": 74.75,
- "y": 1519
+ "y": 1529
},
{
"x": 74.75,
- "y": 1545.6
+ "y": 1555.5999755859375
},
{
"x": 74.75,
- "y": 1570.5
+ "y": 1580.5
},
{
"x": 74.75,
- "y": 1595.4
+ "y": 1605.4000244140625
},
{
"x": 74.75,
- "y": 1630.7
+ "y": 1640.699951171875
},
{
"x": 74.75,
- "y": 1658.75
+ "y": 1668.75
},
{
"x": 74.75,
- "y": 1686.8
+ "y": 1696.800048828125
},
{
- "x": 77.6,
- "y": 1785.6
+ "x": 77.5999984741211,
+ "y": 1796.5999755859375
},
{
"x": 89,
- "y": 1864
+ "y": 1879
}
],
"isCurve": true,
@@ -1299,20 +1299,20 @@
"labelPercentage": 0,
"route": [
{
- "x": 488,
- "y": 1624.7750294464076
+ "x": 490.5,
+ "y": 1634.699951171875
},
{
- "x": 194.8,
- "y": 1689.3550058892815
+ "x": 195.3000030517578,
+ "y": 1699.3399658203125
},
{
- "x": 118.2,
- "y": 1785.6
+ "x": 118.19999694824219,
+ "y": 1796.5999755859375
},
{
"x": 105,
- "y": 1864
+ "y": 1879
}
],
"isCurve": true,
@@ -1346,20 +1346,20 @@
"labelPercentage": 0,
"route": [
{
- "x": 546,
- "y": 1645
+ "x": 548.5,
+ "y": 1655
},
{
- "x": 546,
- "y": 1693.4
+ "x": 548.5,
+ "y": 1703.4000244140625
},
{
- "x": 546,
- "y": 1776
+ "x": 548.5999755859375,
+ "y": 1786
},
{
- "x": 546,
- "y": 1816
+ "x": 549,
+ "y": 1826
}
],
"isCurve": true,
@@ -1394,19 +1394,19 @@
"route": [
{
"x": 276,
- "y": 1499.5
+ "y": 1509.5
},
{
"x": 276,
- "y": 1523.1
+ "y": 1533.0999755859375
},
{
- "x": 318.4,
- "y": 1542
+ "x": 318.8999938964844,
+ "y": 1552.0660400390625
},
{
- "x": 488,
- "y": 1594
+ "x": 490.5,
+ "y": 1604.3330078125
}
],
"isCurve": true,
@@ -1440,31 +1440,31 @@
"labelPercentage": 0,
"route": [
{
- "x": 922,
+ "x": 924.5,
"y": 198.5
},
{
- "x": 922,
- "y": 308.9
+ "x": 924.5,
+ "y": 308.8999938964844
},
{
- "x": 922,
- "y": 348.6
+ "x": 924.5,
+ "y": 348.6000061035156
},
{
- "x": 922,
+ "x": 924.5,
"y": 366.75
},
{
- "x": 922,
- "y": 384.9
+ "x": 924.5,
+ "y": 384.8999938964844
},
{
- "x": 922,
+ "x": 924.5,
"y": 457
},
{
- "x": 922,
+ "x": 924.5,
"y": 497
}
],
@@ -1499,19 +1499,19 @@
"labelPercentage": 0,
"route": [
{
- "x": 922,
+ "x": 924.5,
"y": 903
},
{
- "x": 922,
- "y": 951.4
+ "x": 924.5,
+ "y": 951.4000244140625
},
{
- "x": 922,
- "y": 977.1
+ "x": 924.5,
+ "y": 977.0999755859375
},
{
- "x": 922,
+ "x": 924.5,
"y": 1031.5
}
],
diff --git a/e2etests/testdata/themes/dark_terrastruct_flagship/dagre/sketch.exp.svg b/e2etests/testdata/themes/dark_terrastruct_flagship/dagre/sketch.exp.svg
index 4f343b627..ee777f0f3 100644
--- a/e2etests/testdata/themes/dark_terrastruct_flagship/dagre/sketch.exp.svg
+++ b/e2etests/testdata/themes/dark_terrastruct_flagship/dagre/sketch.exp.svg
@@ -1,42 +1,42 @@
-network user api server logs users id int name string email string password string last_login datetime products + id int + price decimal + sku string + name string A tale
+
network user api server logs users id int name string email string password string last_login datetime products + id int + price decimal + sku string + name string package main
+package main
import (
"fmt"
@@ -885,7 +885,7 @@
city2 := City{Name: "CityB" , Population: 1200000 }
tellTale (city1, city2)
- } package main
+ } package main
import (
"fmt"
@@ -908,14 +908,14 @@
city2 := City { Name : "CityB" , Population : 1200000 }
tellTale ( city1 , city2 )
- } Cell Tower online portal data processor satellites TRANSMITTER ui storage send send send phone logs make call access display persist
-
-
-
-
+} Cell Tower online portal data processor satellites TRANSMITTER ui storage send send send phone logs make call access display persist
+
+
+
+
-
-
-
-
+
+
+
+
\ No newline at end of file
diff --git a/e2etests/testdata/themes/dark_terrastruct_flagship/elk/board.exp.json b/e2etests/testdata/themes/dark_terrastruct_flagship/elk/board.exp.json
index 06b748c37..c9ccab85e 100644
--- a/e2etests/testdata/themes/dark_terrastruct_flagship/elk/board.exp.json
+++ b/e2etests/testdata/themes/dark_terrastruct_flagship/elk/board.exp.json
@@ -11,7 +11,7 @@
"y": 859
},
"width": 546,
- "height": 902,
+ "height": 922,
"opacity": 1,
"strokeDash": 0,
"strokeWidth": 2,
@@ -52,7 +52,7 @@
"y": 909
},
"width": 246,
- "height": 413,
+ "height": 423,
"opacity": 1,
"strokeDash": 0,
"strokeWidth": 2,
@@ -89,8 +89,8 @@
"id": "network.cell tower.satellites",
"type": "stored_data",
"pos": {
- "x": 120,
- "y": 959
+ "x": 115,
+ "y": 969
},
"width": 130,
"height": 66,
@@ -131,7 +131,7 @@
"type": "rectangle",
"pos": {
"x": 112,
- "y": 1206
+ "y": 1216
},
"width": 146,
"height": 66,
@@ -253,11 +253,11 @@
"id": "network.data processor",
"type": "rectangle",
"pos": {
- "x": 85,
- "y": 1493
+ "x": 80,
+ "y": 1503
},
- "width": 199,
- "height": 218,
+ "width": 209,
+ "height": 228,
"opacity": 1,
"strokeDash": 0,
"strokeWidth": 2,
@@ -294,8 +294,8 @@
"id": "network.data processor.storage",
"type": "cylinder",
"pos": {
- "x": 135,
- "y": 1543
+ "x": 130,
+ "y": 1563
},
"width": 99,
"height": 118,
@@ -376,8 +376,8 @@
"id": "api server",
"type": "rectangle",
"pos": {
- "x": 389,
- "y": 1916
+ "x": 387,
+ "y": 1936
},
"width": 116,
"height": 66,
@@ -417,8 +417,8 @@
"id": "logs",
"type": "page",
"pos": {
- "x": 411,
- "y": 2143
+ "x": 403,
+ "y": 2173
},
"width": 73,
"height": 87,
@@ -850,11 +850,11 @@
"route": [
{
"x": 141,
- "y": 1025
+ "y": 1035
},
{
"x": 141,
- "y": 1206
+ "y": 1216
}
],
"animated": false,
@@ -888,11 +888,11 @@
"route": [
{
"x": 185,
- "y": 1025
+ "y": 1035
},
{
"x": 185,
- "y": 1206
+ "y": 1216
}
],
"animated": false,
@@ -926,11 +926,11 @@
"route": [
{
"x": 229,
- "y": 1025
+ "y": 1035
},
{
"x": 229,
- "y": 1206
+ "y": 1216
}
],
"animated": false,
@@ -964,11 +964,11 @@
"route": [
{
"x": 185,
- "y": 1272
+ "y": 1282
},
{
"x": 185,
- "y": 1543
+ "y": 1553
}
],
"animated": false,
@@ -1005,7 +1005,7 @@
"y": 262
},
{
- "x": 236.66666666666666,
+ "x": 236.66600036621094,
"y": 328
},
{
@@ -1055,7 +1055,7 @@
"y": 814
},
{
- "x": 404.6666666666667,
+ "x": 404.6659851074219,
"y": 814
},
{
@@ -1093,23 +1093,23 @@
"labelPercentage": 0,
"route": [
{
- "x": 466.83333333333337,
- "y": 1916
+ "x": 464.3330078125,
+ "y": 1936
},
{
- "x": 466.83333333333337,
- "y": 1876
+ "x": 464.3330078125,
+ "y": 1896
},
{
"x": 680.75,
- "y": 1876
+ "y": 1896
},
{
"x": 680.75,
"y": 814
},
{
- "x": 431.33333333333337,
+ "x": 431.3330078125,
"y": 814
},
{
@@ -1147,12 +1147,12 @@
"labelPercentage": 0,
"route": [
{
- "x": 447.5,
- "y": 1982
+ "x": 445,
+ "y": 2002
},
{
- "x": 448,
- "y": 2143
+ "x": 445,
+ "y": 2163
}
],
"animated": false,
@@ -1185,20 +1185,20 @@
"labelPercentage": 0,
"route": [
{
- "x": 135.5,
- "y": 1711
+ "x": 130.5,
+ "y": 1731
},
{
- "x": 135.5,
- "y": 1876
+ "x": 130.5,
+ "y": 1896
},
{
- "x": 428.1666666666667,
- "y": 1876
+ "x": 425.6659851074219,
+ "y": 1896
},
{
- "x": 428.1666666666667,
- "y": 1916
+ "x": 425.6659851074219,
+ "y": 1936
}
],
"animated": false,
diff --git a/e2etests/testdata/themes/dark_terrastruct_flagship/elk/sketch.exp.svg b/e2etests/testdata/themes/dark_terrastruct_flagship/elk/sketch.exp.svg
index 32e986e26..b99756948 100644
--- a/e2etests/testdata/themes/dark_terrastruct_flagship/elk/sketch.exp.svg
+++ b/e2etests/testdata/themes/dark_terrastruct_flagship/elk/sketch.exp.svg
@@ -1,42 +1,42 @@
-network user api server logs users id int name string email string password string last_login datetime products + id int + price decimal + sku string + name string A tale
+
network user api server logs users id int name string email string password string last_login datetime products + id int + price decimal + sku string + name string A tale
of
two cities
@@ -908,14 +908,14 @@
city2 := City { Name : "CityB" , Population : 1200000 }
tellTale ( city1 , city2 )
- } Cell Tower online portal data processor satellites TRANSMITTER ui storage send send send phone logs make call access display persist
-
-
-
-
-
+} Cell Tower online portal data processor satellites TRANSMITTER ui storage send send send phone logs make call access display persist
+
+
+
+
+
-
-
+
+
\ No newline at end of file
diff --git a/e2etests/testdata/themes/origami/dagre/board.exp.json b/e2etests/testdata/themes/origami/dagre/board.exp.json
index 9ac4e095f..ebc2188fe 100644
--- a/e2etests/testdata/themes/origami/dagre/board.exp.json
+++ b/e2etests/testdata/themes/origami/dagre/board.exp.json
@@ -10,8 +10,8 @@
"x": 0,
"y": 275
},
- "width": 403,
- "height": 1225,
+ "width": 409,
+ "height": 1255,
"opacity": 1,
"strokeDash": 0,
"strokeWidth": 2,
@@ -52,8 +52,8 @@
"x": 95,
"y": 340
},
- "width": 288,
- "height": 317,
+ "width": 294,
+ "height": 327,
"opacity": 1,
"strokeDash": 0,
"strokeWidth": 2,
@@ -91,8 +91,8 @@
"id": "network.cell tower.satellites",
"type": "stored_data",
"pos": {
- "x": 187,
- "y": 372
+ "x": 185,
+ "y": 382
},
"width": 104,
"height": 66,
@@ -133,8 +133,8 @@
"id": "network.cell tower.transmitter",
"type": "rectangle",
"pos": {
- "x": 187,
- "y": 559
+ "x": 190,
+ "y": 569
},
"width": 104,
"height": 66,
@@ -176,10 +176,10 @@
"type": "rectangle",
"pos": {
"x": 20,
- "y": 1319
+ "y": 1339
},
"width": 144,
- "height": 151,
+ "height": 161,
"opacity": 1,
"strokeDash": 0,
"strokeWidth": 2,
@@ -218,7 +218,7 @@
"type": "hexagon",
"pos": {
"x": 65,
- "y": 1360
+ "y": 1385
},
"width": 59,
"height": 69,
@@ -259,11 +259,11 @@
"id": "network.data processor",
"type": "rectangle",
"pos": {
- "x": 147,
- "y": 814
+ "x": 145,
+ "y": 824
},
- "width": 184,
- "height": 182,
+ "width": 194,
+ "height": 192,
"opacity": 1,
"strokeDash": 0,
"strokeWidth": 2,
@@ -301,8 +301,8 @@
"id": "network.data processor.storage",
"type": "cylinder",
"pos": {
- "x": 187,
- "y": 846
+ "x": 185,
+ "y": 866
},
"width": 104,
"height": 118,
@@ -427,8 +427,8 @@
"id": "api server",
"type": "rectangle",
"pos": {
- "x": 443,
- "y": 1076
+ "x": 448,
+ "y": 1096
},
"width": 151,
"height": 66,
@@ -470,7 +470,7 @@
"type": "page",
"pos": {
"x": 477,
- "y": 1313
+ "y": 1343
},
"width": 84,
"height": 87,
@@ -534,19 +534,19 @@
"route": [
{
"x": 212,
- "y": 439
+ "y": 449
},
{
- "x": 173.6,
- "y": 487
+ "x": 175.60000610351562,
+ "y": 497
},
{
- "x": 173.8,
- "y": 511.2
+ "x": 176.3000030517578,
+ "y": 521.2000122070312
},
{
- "x": 213,
- "y": 560
+ "x": 215.5,
+ "y": 570
}
],
"isCurve": true,
@@ -579,20 +579,20 @@
"labelPercentage": 0,
"route": [
{
- "x": 239,
- "y": 439
+ "x": 241,
+ "y": 449
},
{
- "x": 239,
- "y": 487
+ "x": 241.39999389648438,
+ "y": 497
},
{
- "x": 239,
- "y": 511.2
+ "x": 241.5,
+ "y": 521.2000122070312
},
{
- "x": 239,
- "y": 560
+ "x": 241.5,
+ "y": 570
}
],
"isCurve": true,
@@ -625,20 +625,20 @@
"labelPercentage": 0,
"route": [
{
- "x": 266,
- "y": 439
+ "x": 271,
+ "y": 449
},
{
- "x": 304.4,
- "y": 487
+ "x": 307.3999938964844,
+ "y": 497
},
{
- "x": 304.2,
- "y": 511.2
+ "x": 306.70001220703125,
+ "y": 521.2000122070312
},
{
- "x": 265,
- "y": 560
+ "x": 267.5,
+ "y": 570
}
],
"isCurve": true,
@@ -671,32 +671,32 @@
"labelPercentage": 0,
"route": [
{
- "x": 239,
- "y": 625.5
+ "x": 241.5,
+ "y": 635.5
},
{
- "x": 239,
- "y": 651.1
+ "x": 241.5,
+ "y": 661.0999755859375
},
{
- "x": 239,
- "y": 669.6
+ "x": 241.5,
+ "y": 679.5999755859375
},
{
- "x": 239,
- "y": 687.75
+ "x": 241.5,
+ "y": 697.75
},
{
- "x": 239,
- "y": 705.9
+ "x": 241.5,
+ "y": 715.9000244140625
},
{
- "x": 239,
- "y": 792.2
+ "x": 241.60000610351562,
+ "y": 802.2000122070312
},
{
- "x": 239,
- "y": 847
+ "x": 242,
+ "y": 857
}
],
"isCurve": true,
@@ -729,19 +729,19 @@
"labelPercentage": 0,
"route": [
{
- "x": 170,
+ "x": 171,
"y": 87
},
{
- "x": 225.2,
- "y": 156.2
+ "x": 227.39999389648438,
+ "y": 156.1999969482422
},
{
- "x": 239,
- "y": 248.2
+ "x": 241.5,
+ "y": 248.1999969482422
},
{
- "x": 239,
+ "x": 241.5,
"y": 305
}
],
@@ -779,12 +779,12 @@
"y": 87
},
{
- "x": 85.19999999999999,
- "y": 156.2
+ "x": 85.1989974975586,
+ "y": 156.1999969482422
},
{
"x": 74.75,
- "y": 185.6
+ "y": 185.60000610351562
},
{
"x": 74.75,
@@ -792,7 +792,7 @@
},
{
"x": 74.75,
- "y": 221.9
+ "y": 221.89999389648438
},
{
"x": 74.75,
@@ -808,143 +808,143 @@
},
{
"x": 74.75,
- "y": 300.6
+ "y": 301.6000061035156
},
{
"x": 74.75,
- "y": 325.5
+ "y": 328
},
{
"x": 74.75,
- "y": 350.4
+ "y": 354.3999938964844
},
{
"x": 74.75,
- "y": 385.7
+ "y": 391.70001220703125
},
{
"x": 74.75,
- "y": 413.75
+ "y": 421.25
},
{
"x": 74.75,
- "y": 441.8
+ "y": 450.79998779296875
},
{
"x": 74.75,
- "y": 479.2
+ "y": 489.20001220703125
},
{
"x": 74.75,
- "y": 507.25
+ "y": 517.25
},
{
"x": 74.75,
- "y": 535.3
+ "y": 545.2999877929688
},
{
"x": 74.75,
- "y": 570.6
+ "y": 580.5999755859375
},
{
"x": 74.75,
- "y": 595.5
+ "y": 605.5
},
{
"x": 74.75,
- "y": 620.4
+ "y": 630.4000244140625
},
{
"x": 74.75,
- "y": 649.1
+ "y": 659.0999755859375
},
{
"x": 74.75,
- "y": 667.25
+ "y": 677.25
},
{
"x": 74.75,
- "y": 685.4
+ "y": 695.4000244140625
},
{
"x": 74.75,
- "y": 709.6
+ "y": 719.5999755859375
},
{
"x": 74.75,
- "y": 727.75
+ "y": 737.75
},
{
"x": 74.75,
- "y": 745.9
+ "y": 755.9000244140625
},
{
"x": 74.75,
- "y": 779.8
+ "y": 790.7999877929688
},
{
"x": 74.75,
- "y": 812.5
+ "y": 825
},
{
"x": 74.75,
- "y": 845.2
+ "y": 859.2000122070312
},
{
"x": 74.75,
- "y": 888.8
+ "y": 904.7999877929688
},
{
"x": 74.75,
- "y": 921.5
+ "y": 939
},
{
"x": 74.75,
- "y": 954.2
+ "y": 973.2000122070312
},
{
"x": 74.75,
- "y": 986
+ "y": 1006
},
{
"x": 74.75,
- "y": 1001
+ "y": 1021
},
{
"x": 74.75,
- "y": 1016
+ "y": 1036
},
{
"x": 74.75,
- "y": 1042.6
+ "y": 1062.5999755859375
},
{
"x": 74.75,
- "y": 1067.5
+ "y": 1087.5
},
{
"x": 74.75,
- "y": 1092.4
+ "y": 1112.4000244140625
},
{
"x": 74.75,
- "y": 1127.7
+ "y": 1147.699951171875
},
{
"x": 74.75,
- "y": 1155.75
+ "y": 1175.75
},
{
"x": 74.75,
- "y": 1183.8
+ "y": 1203.800048828125
},
{
- "x": 77.2,
- "y": 1282.6
+ "x": 77.4000015258789,
+ "y": 1303.5999755859375
},
{
- "x": 87,
- "y": 1361
+ "x": 88,
+ "y": 1386
}
],
"isCurve": true,
@@ -977,20 +977,20 @@
"labelPercentage": 0,
"route": [
{
- "x": 443.25,
- "y": 1126.6702127659576
+ "x": 448.25,
+ "y": 1146.4510498046875
},
{
- "x": 184.05,
- "y": 1187.3340425531915
+ "x": 185.0500030517578,
+ "y": 1207.2900390625
},
{
"x": 116,
- "y": 1282.6
+ "y": 1303.5999755859375
},
{
"x": 103,
- "y": 1361
+ "y": 1386
}
],
"isCurve": true,
@@ -1023,20 +1023,20 @@
"labelPercentage": 0,
"route": [
{
- "x": 518.75,
- "y": 1142
+ "x": 523.75,
+ "y": 1162
},
{
- "x": 518.75,
- "y": 1190.4
+ "x": 523.75,
+ "y": 1210.4000244140625
},
{
- "x": 518.8,
- "y": 1273
+ "x": 523.7990112304688,
+ "y": 1293
},
{
- "x": 519,
- "y": 1313
+ "x": 524,
+ "y": 1333
}
],
"isCurve": true,
@@ -1069,20 +1069,20 @@
"labelPercentage": 0,
"route": [
{
- "x": 239,
- "y": 996.5
+ "x": 241.5,
+ "y": 1016.5
},
{
- "x": 239,
- "y": 1020.1
+ "x": 241.5,
+ "y": 1040.0989990234375
},
{
- "x": 279.8,
- "y": 1038.2
+ "x": 282.8999938964844,
+ "y": 1058.199951171875
},
{
- "x": 443,
- "y": 1087
+ "x": 448.5,
+ "y": 1107
}
],
"isCurve": true,
diff --git a/e2etests/testdata/themes/origami/dagre/sketch.exp.svg b/e2etests/testdata/themes/origami/dagre/sketch.exp.svg
index 5037c3e9d..c9cbd8e53 100644
--- a/e2etests/testdata/themes/origami/dagre/sketch.exp.svg
+++ b/e2etests/testdata/themes/origami/dagre/sketch.exp.svg
@@ -1,24 +1,24 @@
-a a container label d e f g c
+ .d2-3923007382 .fill-N1{fill:#0A0F25;}
+ .d2-3923007382 .fill-N2{fill:#676C7E;}
+ .d2-3923007382 .fill-N3{fill:#9499AB;}
+ .d2-3923007382 .fill-N4{fill:#CFD2DD;}
+ .d2-3923007382 .fill-N5{fill:#DEE1EB;}
+ .d2-3923007382 .fill-N6{fill:#EEF1F8;}
+ .d2-3923007382 .fill-N7{fill:#FFFFFF;}
+ .d2-3923007382 .fill-B1{fill:#0D32B2;}
+ .d2-3923007382 .fill-B2{fill:#0D32B2;}
+ .d2-3923007382 .fill-B3{fill:#E3E9FD;}
+ .d2-3923007382 .fill-B4{fill:#E3E9FD;}
+ .d2-3923007382 .fill-B5{fill:#EDF0FD;}
+ .d2-3923007382 .fill-B6{fill:#F7F8FE;}
+ .d2-3923007382 .fill-AA2{fill:#4A6FF3;}
+ .d2-3923007382 .fill-AA4{fill:#EDF0FD;}
+ .d2-3923007382 .fill-AA5{fill:#F7F8FE;}
+ .d2-3923007382 .fill-AB4{fill:#EDF0FD;}
+ .d2-3923007382 .fill-AB5{fill:#F7F8FE;}
+ .d2-3923007382 .stroke-N1{stroke:#0A0F25;}
+ .d2-3923007382 .stroke-N2{stroke:#676C7E;}
+ .d2-3923007382 .stroke-N3{stroke:#9499AB;}
+ .d2-3923007382 .stroke-N4{stroke:#CFD2DD;}
+ .d2-3923007382 .stroke-N5{stroke:#DEE1EB;}
+ .d2-3923007382 .stroke-N6{stroke:#EEF1F8;}
+ .d2-3923007382 .stroke-N7{stroke:#FFFFFF;}
+ .d2-3923007382 .stroke-B1{stroke:#0D32B2;}
+ .d2-3923007382 .stroke-B2{stroke:#0D32B2;}
+ .d2-3923007382 .stroke-B3{stroke:#E3E9FD;}
+ .d2-3923007382 .stroke-B4{stroke:#E3E9FD;}
+ .d2-3923007382 .stroke-B5{stroke:#EDF0FD;}
+ .d2-3923007382 .stroke-B6{stroke:#F7F8FE;}
+ .d2-3923007382 .stroke-AA2{stroke:#4A6FF3;}
+ .d2-3923007382 .stroke-AA4{stroke:#EDF0FD;}
+ .d2-3923007382 .stroke-AA5{stroke:#F7F8FE;}
+ .d2-3923007382 .stroke-AB4{stroke:#EDF0FD;}
+ .d2-3923007382 .stroke-AB5{stroke:#F7F8FE;}
+ .d2-3923007382 .background-color-N1{background-color:#0A0F25;}
+ .d2-3923007382 .background-color-N2{background-color:#676C7E;}
+ .d2-3923007382 .background-color-N3{background-color:#9499AB;}
+ .d2-3923007382 .background-color-N4{background-color:#CFD2DD;}
+ .d2-3923007382 .background-color-N5{background-color:#DEE1EB;}
+ .d2-3923007382 .background-color-N6{background-color:#EEF1F8;}
+ .d2-3923007382 .background-color-N7{background-color:#FFFFFF;}
+ .d2-3923007382 .background-color-B1{background-color:#0D32B2;}
+ .d2-3923007382 .background-color-B2{background-color:#0D32B2;}
+ .d2-3923007382 .background-color-B3{background-color:#E3E9FD;}
+ .d2-3923007382 .background-color-B4{background-color:#E3E9FD;}
+ .d2-3923007382 .background-color-B5{background-color:#EDF0FD;}
+ .d2-3923007382 .background-color-B6{background-color:#F7F8FE;}
+ .d2-3923007382 .background-color-AA2{background-color:#4A6FF3;}
+ .d2-3923007382 .background-color-AA4{background-color:#EDF0FD;}
+ .d2-3923007382 .background-color-AA5{background-color:#F7F8FE;}
+ .d2-3923007382 .background-color-AB4{background-color:#EDF0FD;}
+ .d2-3923007382 .background-color-AB5{background-color:#F7F8FE;}
+ .d2-3923007382 .color-N1{color:#0A0F25;}
+ .d2-3923007382 .color-N2{color:#676C7E;}
+ .d2-3923007382 .color-N3{color:#9499AB;}
+ .d2-3923007382 .color-N4{color:#CFD2DD;}
+ .d2-3923007382 .color-N5{color:#DEE1EB;}
+ .d2-3923007382 .color-N6{color:#EEF1F8;}
+ .d2-3923007382 .color-N7{color:#FFFFFF;}
+ .d2-3923007382 .color-B1{color:#0D32B2;}
+ .d2-3923007382 .color-B2{color:#0D32B2;}
+ .d2-3923007382 .color-B3{color:#E3E9FD;}
+ .d2-3923007382 .color-B4{color:#E3E9FD;}
+ .d2-3923007382 .color-B5{color:#EDF0FD;}
+ .d2-3923007382 .color-B6{color:#F7F8FE;}
+ .d2-3923007382 .color-AA2{color:#4A6FF3;}
+ .d2-3923007382 .color-AA4{color:#EDF0FD;}
+ .d2-3923007382 .color-AA5{color:#F7F8FE;}
+ .d2-3923007382 .color-AB4{color:#EDF0FD;}
+ .d2-3923007382 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>a a container label d e f g c
\ No newline at end of file
diff --git a/e2etests/testdata/todo/container_label_edge_adjustment/elk/board.exp.json b/e2etests/testdata/todo/container_label_edge_adjustment/elk/board.exp.json
index 3a095836e..edddf08d6 100644
--- a/e2etests/testdata/todo/container_label_edge_adjustment/elk/board.exp.json
+++ b/e2etests/testdata/todo/container_label_edge_adjustment/elk/board.exp.json
@@ -317,19 +317,19 @@
"labelPercentage": 0,
"route": [
{
- "x": 68.33333333333337,
+ "x": 68.33300018310547,
"y": 78
},
{
- "x": 68.33333333333337,
+ "x": 68.33300018310547,
"y": 168
},
{
- "x": 145.66666666666669,
+ "x": 145.66600036621094,
"y": 168
},
{
- "x": 145.66666666666669,
+ "x": 145.66600036621094,
"y": 369
}
],
@@ -401,19 +401,19 @@
"labelPercentage": 0,
"route": [
{
- "x": 141.33333333333337,
+ "x": 141.33299255371094,
"y": 78
},
{
- "x": 141.33333333333337,
+ "x": 141.33299255371094,
"y": 118
},
{
- "x": 172.33333333333334,
+ "x": 172.33299255371094,
"y": 118
},
{
- "x": 172.33333333333334,
+ "x": 172.33299255371094,
"y": 369
}
],
@@ -447,15 +447,15 @@
"labelPercentage": 0,
"route": [
{
- "x": 213.33333333333337,
+ "x": 213.33299255371094,
"y": 78
},
{
- "x": 213.33333333333337,
+ "x": 213.33299255371094,
"y": 118
},
{
- "x": 182.33333333333334,
+ "x": 182.33299255371094,
"y": 118
},
{
@@ -493,7 +493,7 @@
"labelPercentage": 0,
"route": [
{
- "x": 285.83333333333337,
+ "x": 285.8330078125,
"y": 78
},
{
diff --git a/e2etests/testdata/todo/container_label_edge_adjustment/elk/sketch.exp.svg b/e2etests/testdata/todo/container_label_edge_adjustment/elk/sketch.exp.svg
index 195c6f681..a629b8415 100644
--- a/e2etests/testdata/todo/container_label_edge_adjustment/elk/sketch.exp.svg
+++ b/e2etests/testdata/todo/container_label_edge_adjustment/elk/sketch.exp.svg
@@ -1,17 +1,17 @@
-a a container label d e f g c
+ .d2-1655656613 .fill-N1{fill:#0A0F25;}
+ .d2-1655656613 .fill-N2{fill:#676C7E;}
+ .d2-1655656613 .fill-N3{fill:#9499AB;}
+ .d2-1655656613 .fill-N4{fill:#CFD2DD;}
+ .d2-1655656613 .fill-N5{fill:#DEE1EB;}
+ .d2-1655656613 .fill-N6{fill:#EEF1F8;}
+ .d2-1655656613 .fill-N7{fill:#FFFFFF;}
+ .d2-1655656613 .fill-B1{fill:#0D32B2;}
+ .d2-1655656613 .fill-B2{fill:#0D32B2;}
+ .d2-1655656613 .fill-B3{fill:#E3E9FD;}
+ .d2-1655656613 .fill-B4{fill:#E3E9FD;}
+ .d2-1655656613 .fill-B5{fill:#EDF0FD;}
+ .d2-1655656613 .fill-B6{fill:#F7F8FE;}
+ .d2-1655656613 .fill-AA2{fill:#4A6FF3;}
+ .d2-1655656613 .fill-AA4{fill:#EDF0FD;}
+ .d2-1655656613 .fill-AA5{fill:#F7F8FE;}
+ .d2-1655656613 .fill-AB4{fill:#EDF0FD;}
+ .d2-1655656613 .fill-AB5{fill:#F7F8FE;}
+ .d2-1655656613 .stroke-N1{stroke:#0A0F25;}
+ .d2-1655656613 .stroke-N2{stroke:#676C7E;}
+ .d2-1655656613 .stroke-N3{stroke:#9499AB;}
+ .d2-1655656613 .stroke-N4{stroke:#CFD2DD;}
+ .d2-1655656613 .stroke-N5{stroke:#DEE1EB;}
+ .d2-1655656613 .stroke-N6{stroke:#EEF1F8;}
+ .d2-1655656613 .stroke-N7{stroke:#FFFFFF;}
+ .d2-1655656613 .stroke-B1{stroke:#0D32B2;}
+ .d2-1655656613 .stroke-B2{stroke:#0D32B2;}
+ .d2-1655656613 .stroke-B3{stroke:#E3E9FD;}
+ .d2-1655656613 .stroke-B4{stroke:#E3E9FD;}
+ .d2-1655656613 .stroke-B5{stroke:#EDF0FD;}
+ .d2-1655656613 .stroke-B6{stroke:#F7F8FE;}
+ .d2-1655656613 .stroke-AA2{stroke:#4A6FF3;}
+ .d2-1655656613 .stroke-AA4{stroke:#EDF0FD;}
+ .d2-1655656613 .stroke-AA5{stroke:#F7F8FE;}
+ .d2-1655656613 .stroke-AB4{stroke:#EDF0FD;}
+ .d2-1655656613 .stroke-AB5{stroke:#F7F8FE;}
+ .d2-1655656613 .background-color-N1{background-color:#0A0F25;}
+ .d2-1655656613 .background-color-N2{background-color:#676C7E;}
+ .d2-1655656613 .background-color-N3{background-color:#9499AB;}
+ .d2-1655656613 .background-color-N4{background-color:#CFD2DD;}
+ .d2-1655656613 .background-color-N5{background-color:#DEE1EB;}
+ .d2-1655656613 .background-color-N6{background-color:#EEF1F8;}
+ .d2-1655656613 .background-color-N7{background-color:#FFFFFF;}
+ .d2-1655656613 .background-color-B1{background-color:#0D32B2;}
+ .d2-1655656613 .background-color-B2{background-color:#0D32B2;}
+ .d2-1655656613 .background-color-B3{background-color:#E3E9FD;}
+ .d2-1655656613 .background-color-B4{background-color:#E3E9FD;}
+ .d2-1655656613 .background-color-B5{background-color:#EDF0FD;}
+ .d2-1655656613 .background-color-B6{background-color:#F7F8FE;}
+ .d2-1655656613 .background-color-AA2{background-color:#4A6FF3;}
+ .d2-1655656613 .background-color-AA4{background-color:#EDF0FD;}
+ .d2-1655656613 .background-color-AA5{background-color:#F7F8FE;}
+ .d2-1655656613 .background-color-AB4{background-color:#EDF0FD;}
+ .d2-1655656613 .background-color-AB5{background-color:#F7F8FE;}
+ .d2-1655656613 .color-N1{color:#0A0F25;}
+ .d2-1655656613 .color-N2{color:#676C7E;}
+ .d2-1655656613 .color-N3{color:#9499AB;}
+ .d2-1655656613 .color-N4{color:#CFD2DD;}
+ .d2-1655656613 .color-N5{color:#DEE1EB;}
+ .d2-1655656613 .color-N6{color:#EEF1F8;}
+ .d2-1655656613 .color-N7{color:#FFFFFF;}
+ .d2-1655656613 .color-B1{color:#0D32B2;}
+ .d2-1655656613 .color-B2{color:#0D32B2;}
+ .d2-1655656613 .color-B3{color:#E3E9FD;}
+ .d2-1655656613 .color-B4{color:#E3E9FD;}
+ .d2-1655656613 .color-B5{color:#EDF0FD;}
+ .d2-1655656613 .color-B6{color:#F7F8FE;}
+ .d2-1655656613 .color-AA2{color:#4A6FF3;}
+ .d2-1655656613 .color-AA4{color:#EDF0FD;}
+ .d2-1655656613 .color-AA5{color:#F7F8FE;}
+ .d2-1655656613 .color-AB4{color:#EDF0FD;}
+ .d2-1655656613 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>a a container label d e f g c
\ No newline at end of file
diff --git a/e2etests/testdata/todo/container_label_edge_adjustment2/dagre/sketch.exp.svg b/e2etests/testdata/todo/container_label_edge_adjustment2/dagre/sketch.exp.svg
index 077cbce31..4fca91046 100644
--- a/e2etests/testdata/todo/container_label_edge_adjustment2/dagre/sketch.exp.svg
+++ b/e2etests/testdata/todo/container_label_edge_adjustment2/dagre/sketch.exp.svg
@@ -1,24 +1,24 @@
-OEM Factory company Warehouse
+
OEM Factory company Warehouse
Asset Tagging
Inventory
Staging
Dispatch to Site
-
Master Regional-1 Regional-2 Regional-N
-
+ Master Regional-1 Regional-2 Regional-N
+
\ No newline at end of file
diff --git a/e2etests/testdata/todo/dagre_container_md_label_panic/elk/sketch.exp.svg b/e2etests/testdata/todo/dagre_container_md_label_panic/elk/sketch.exp.svg
index 94301a49a..06eda5c8c 100644
--- a/e2etests/testdata/todo/dagre_container_md_label_panic/elk/sketch.exp.svg
+++ b/e2etests/testdata/todo/dagre_container_md_label_panic/elk/sketch.exp.svg
@@ -1,21 +1,21 @@
-containers cloud tall cylinder class2 - num int - timeout int - pid + getStatus() Enum + getJobs() Job[] + setTimeout(seconds int) void users id int name string email string password string last_login datetime container markdown text expanded to 800x400
@@ -859,7 +859,7 @@
b := a + 7
fmt.Printf ("%d" , b) a := 5
b := a + 7
- fmt . Printf ( "%d" , b ) circle container diamond container oval container hexagon container diamond circle hexagon oval
+fmt . Printf ( "%d" , b ) circle container diamond container oval container hexagon container diamond circle hexagon oval
\ No newline at end of file
diff --git a/e2etests/testdata/todo/shape_set_width_height/elk/sketch.exp.svg b/e2etests/testdata/todo/shape_set_width_height/elk/sketch.exp.svg
index 974f24494..f67cb84d9 100644
--- a/e2etests/testdata/todo/shape_set_width_height/elk/sketch.exp.svg
+++ b/e2etests/testdata/todo/shape_set_width_height/elk/sketch.exp.svg
@@ -1,35 +1,35 @@
-ใใๆฅใใใใใ้ใๆญฉใใฆใใใใ้่ทฏใฎๅใใใใใญใฅใฆใชใใใฃใฆๆฅใพใใใ ใใใใฏ้ฉใใฆๅฐใญใพใใใ ใใญใฅใฆใชใใใใฉใใใฆใใชใใฏใใใซใใใฎใงใใ๏ผใ ใญใฅใฆใชใฏ็ญใใพใใใใใใชใใจๅใ็็ฑใงใใใซใใพใใใตใฉใใซใชใใใใซใใ ใใใใใฏ็ฎใๅฅใใฆ้ฃในใใใฎใงใใใ ใใใซใฏๆญปใชใชใใๆฒปใใชใใใ
+ .d2-2100912734 .fill-N1{fill:#0A0F25;}
+ .d2-2100912734 .fill-N2{fill:#676C7E;}
+ .d2-2100912734 .fill-N3{fill:#9499AB;}
+ .d2-2100912734 .fill-N4{fill:#CFD2DD;}
+ .d2-2100912734 .fill-N5{fill:#DEE1EB;}
+ .d2-2100912734 .fill-N6{fill:#EEF1F8;}
+ .d2-2100912734 .fill-N7{fill:#FFFFFF;}
+ .d2-2100912734 .fill-B1{fill:#0D32B2;}
+ .d2-2100912734 .fill-B2{fill:#0D32B2;}
+ .d2-2100912734 .fill-B3{fill:#E3E9FD;}
+ .d2-2100912734 .fill-B4{fill:#E3E9FD;}
+ .d2-2100912734 .fill-B5{fill:#EDF0FD;}
+ .d2-2100912734 .fill-B6{fill:#F7F8FE;}
+ .d2-2100912734 .fill-AA2{fill:#4A6FF3;}
+ .d2-2100912734 .fill-AA4{fill:#EDF0FD;}
+ .d2-2100912734 .fill-AA5{fill:#F7F8FE;}
+ .d2-2100912734 .fill-AB4{fill:#EDF0FD;}
+ .d2-2100912734 .fill-AB5{fill:#F7F8FE;}
+ .d2-2100912734 .stroke-N1{stroke:#0A0F25;}
+ .d2-2100912734 .stroke-N2{stroke:#676C7E;}
+ .d2-2100912734 .stroke-N3{stroke:#9499AB;}
+ .d2-2100912734 .stroke-N4{stroke:#CFD2DD;}
+ .d2-2100912734 .stroke-N5{stroke:#DEE1EB;}
+ .d2-2100912734 .stroke-N6{stroke:#EEF1F8;}
+ .d2-2100912734 .stroke-N7{stroke:#FFFFFF;}
+ .d2-2100912734 .stroke-B1{stroke:#0D32B2;}
+ .d2-2100912734 .stroke-B2{stroke:#0D32B2;}
+ .d2-2100912734 .stroke-B3{stroke:#E3E9FD;}
+ .d2-2100912734 .stroke-B4{stroke:#E3E9FD;}
+ .d2-2100912734 .stroke-B5{stroke:#EDF0FD;}
+ .d2-2100912734 .stroke-B6{stroke:#F7F8FE;}
+ .d2-2100912734 .stroke-AA2{stroke:#4A6FF3;}
+ .d2-2100912734 .stroke-AA4{stroke:#EDF0FD;}
+ .d2-2100912734 .stroke-AA5{stroke:#F7F8FE;}
+ .d2-2100912734 .stroke-AB4{stroke:#EDF0FD;}
+ .d2-2100912734 .stroke-AB5{stroke:#F7F8FE;}
+ .d2-2100912734 .background-color-N1{background-color:#0A0F25;}
+ .d2-2100912734 .background-color-N2{background-color:#676C7E;}
+ .d2-2100912734 .background-color-N3{background-color:#9499AB;}
+ .d2-2100912734 .background-color-N4{background-color:#CFD2DD;}
+ .d2-2100912734 .background-color-N5{background-color:#DEE1EB;}
+ .d2-2100912734 .background-color-N6{background-color:#EEF1F8;}
+ .d2-2100912734 .background-color-N7{background-color:#FFFFFF;}
+ .d2-2100912734 .background-color-B1{background-color:#0D32B2;}
+ .d2-2100912734 .background-color-B2{background-color:#0D32B2;}
+ .d2-2100912734 .background-color-B3{background-color:#E3E9FD;}
+ .d2-2100912734 .background-color-B4{background-color:#E3E9FD;}
+ .d2-2100912734 .background-color-B5{background-color:#EDF0FD;}
+ .d2-2100912734 .background-color-B6{background-color:#F7F8FE;}
+ .d2-2100912734 .background-color-AA2{background-color:#4A6FF3;}
+ .d2-2100912734 .background-color-AA4{background-color:#EDF0FD;}
+ .d2-2100912734 .background-color-AA5{background-color:#F7F8FE;}
+ .d2-2100912734 .background-color-AB4{background-color:#EDF0FD;}
+ .d2-2100912734 .background-color-AB5{background-color:#F7F8FE;}
+ .d2-2100912734 .color-N1{color:#0A0F25;}
+ .d2-2100912734 .color-N2{color:#676C7E;}
+ .d2-2100912734 .color-N3{color:#9499AB;}
+ .d2-2100912734 .color-N4{color:#CFD2DD;}
+ .d2-2100912734 .color-N5{color:#DEE1EB;}
+ .d2-2100912734 .color-N6{color:#EEF1F8;}
+ .d2-2100912734 .color-N7{color:#FFFFFF;}
+ .d2-2100912734 .color-B1{color:#0D32B2;}
+ .d2-2100912734 .color-B2{color:#0D32B2;}
+ .d2-2100912734 .color-B3{color:#E3E9FD;}
+ .d2-2100912734 .color-B4{color:#E3E9FD;}
+ .d2-2100912734 .color-B5{color:#EDF0FD;}
+ .d2-2100912734 .color-B6{color:#F7F8FE;}
+ .d2-2100912734 .color-AA2{color:#4A6FF3;}
+ .d2-2100912734 .color-AA4{color:#EDF0FD;}
+ .d2-2100912734 .color-AA5{color:#F7F8FE;}
+ .d2-2100912734 .color-AB4{color:#EDF0FD;}
+ .d2-2100912734 .color-AB5{color:#F7F8FE;}.appendix text.text{fill:#0A0F25}.md{--color-fg-default:#0A0F25;--color-fg-muted:#676C7E;--color-fg-subtle:#9499AB;--color-canvas-default:#FFFFFF;--color-canvas-subtle:#EEF1F8;--color-border-default:#0D32B2;--color-border-muted:#0D32B2;--color-neutral-muted:#EEF1F8;--color-accent-fg:#0D32B2;--color-accent-emphasis:#0D32B2;--color-attention-subtle:#676C7E;--color-danger-fg:red;}.sketch-overlay-B1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B2{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-B3{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-B6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-AA4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AA5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB4{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-AB5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N1{fill:url(#streaks-darker);mix-blend-mode:lighten}.sketch-overlay-N2{fill:url(#streaks-dark);mix-blend-mode:overlay}.sketch-overlay-N3{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N4{fill:url(#streaks-normal);mix-blend-mode:color-burn}.sketch-overlay-N5{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N6{fill:url(#streaks-bright);mix-blend-mode:darken}.sketch-overlay-N7{fill:url(#streaks-bright);mix-blend-mode:darken}.light-code{display: block}.dark-code{display: none}]]>ใใๆฅใใใใใ้ใๆญฉใใฆใใใใ้่ทฏใฎๅใใใใใญใฅใฆใชใใใฃใฆๆฅใพใใใ ใใใใฏ้ฉใใฆๅฐใญใพใใใ ใใญใฅใฆใชใใใใฉใใใฆใใชใใฏใใใซใใใฎใงใใ๏ผใ ใญใฅใฆใชใฏ็ญใใพใใใใใใชใใจๅใ็็ฑใงใใใซใใพใใใตใฉใใซใชใใใใซใใ ใใใใใฏ็ฎใๅฅใใฆ้ฃในใใใฎใงใใใ ใใใซใฏๆญปใชใชใใๆฒปใใชใใใ
\ No newline at end of file
diff --git a/e2etests/testdata/unicode/japanese-full/elk/sketch.exp.svg b/e2etests/testdata/unicode/japanese-full/elk/sketch.exp.svg
index 9faa47599..d76bcde99 100644
--- a/e2etests/testdata/unicode/japanese-full/elk/sketch.exp.svg
+++ b/e2etests/testdata/unicode/japanese-full/elk/sketch.exp.svg
@@ -1,17 +1,17 @@
-ๆไธไธชๅซๅๅคๅคฉ็ๅญฃ่ใ ใใๅญฃ็ฏใๅคใจใใๅๅใใคใใฆใใพใใ ํ ๊ณ์ , ์ฌ๋ฆ์ด๋ ์ด๋ฆ์ด ์์ต๋๋ค. ๅคๅคฉ็ๆถๅ๏ผๅคฉๆฐ้ๅธธ็ญ๏ผไบบไปฌๆปๆฏๆต็ๆฑใ ๅคใซใชใใจใใจใฆใๆใใฆใไบบใ
ใฏๆฑใๆตใใฆใใพใใ
์ฌ๋ฆ์๋ ๋งค์ฐ ๋์์ ์ฌ๋๋ค์ ๋์ ํ๋ฆฝ๋๋ค.
-
+
\ No newline at end of file
diff --git a/e2etests/testdata/unicode/mixed-language/elk/board.exp.json b/e2etests/testdata/unicode/mixed-language/elk/board.exp.json
index 1446e21ca..e1f1d747a 100644
--- a/e2etests/testdata/unicode/mixed-language/elk/board.exp.json
+++ b/e2etests/testdata/unicode/mixed-language/elk/board.exp.json
@@ -152,11 +152,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 409.66666666666674,
+ "x": 409.6659851074219,
"y": 110
},
{
- "x": 409.66666666666674,
+ "x": 409.6659851074219,
"y": 190
}
],
@@ -190,11 +190,11 @@
"labelPercentage": 0,
"route": [
{
- "x": 552.3333333333334,
+ "x": 552.3330078125,
"y": 110
},
{
- "x": 552.3333333333334,
+ "x": 552.3330078125,
"y": 190
}
],
diff --git a/e2etests/testdata/unicode/mixed-language/elk/sketch.exp.svg b/e2etests/testdata/unicode/mixed-language/elk/sketch.exp.svg
index 286e25952..1251ab0a1 100644
--- a/e2etests/testdata/unicode/mixed-language/elk/sketch.exp.svg
+++ b/e2etests/testdata/unicode/mixed-language/elk/sketch.exp.svg
@@ -1,21 +1,21 @@
-ๆไธไธชๅซๅๅคๅคฉ็ๅญฃ่ใ ใใๅญฃ็ฏใๅคใจใใๅๅใใคใใฆใใพใใ ํ ๊ณ์ , ์ฌ๋ฆ์ด๋ ์ด๋ฆ์ด ์์ต๋๋ค. ๅคๅคฉ็ๆถๅ๏ผๅคฉๆฐ้ๅธธ็ญ๏ผไบบไปฌๆปๆฏๆต็ๆฑใ ๅคใซใชใใจใใจใฆใๆใใฆใไบบใ
ใฏๆฑใๆตใใฆใใพใใ
์ฌ๋ฆ์๋ ๋งค์ฐ ๋์์ ์ฌ๋๋ค์ ๋์ ํ๋ฆฝ๋๋ค.
-
+
\ No newline at end of file
diff --git a/e2etests/testdata/unicode/with-style/dagre/sketch.exp.svg b/e2etests/testdata/unicode/with-style/dagre/sketch.exp.svg
index b3ff3fdf2..2c37d611a 100644
--- a/e2etests/testdata/unicode/with-style/dagre/sketch.exp.svg
+++ b/e2etests/testdata/unicode/with-style/dagre/sketch.exp.svg
@@ -1,4 +1,4 @@
-