diff mbox series

[v4,3/4] dev-manual/devtool: add diagrams for the ide-sdk workflow and architecture

Message ID 20261020084359.354498-4-adrian.freihofer@siemens.com
State New
Headers show
Series dev-manual/devtool: ide-sdk doc rewrite and Mermaid diagrams | expand

Commit Message

AdrianF Oct. 20, 2026, 8:43 a.m. UTC
From: Adrian Freihofer <adrian.freihofer@siemens.com>

Add three diagrams to the devtool ide-sdk section: a typical usage
workflow, the architecture of the SDK/IDE relationship, and a variant
of the architecture for the --nfs=rootfs-dbg mode.

The diagrams are Mermaid (.mmd) flowcharts, kept as the maintainable
source next to the pre-rendered SVGs that the documentation includes,
so building the documentation needs no Mermaid tooling. The command to
regenerate an SVG is documented at the top of each .mmd file. The
Mermaid configuration in each .mmd follows the documentation SVG
policy (GNOME HIG colors, Nimbus Sans 10pt text, rounded boxes, no
shadows).

Colors: blue for the SDK/build environment, purple for devtool-managed
workspace/NFS directories, brown for the target device, orange for
entry-point commands and green for editable/source elements.

The images are scaled with the page width but never beyond their
natural size, which is what the new max-natural-size CSS class is for.
The text then stays at the intended size.

Signed-off-by: Adrian Freihofer <adrian.freihofer@siemens.com>
---
 documentation/dev-manual/devtool.rst          | 27 +++++-
 .../figures/devtool-ide-sdk-architecture.mmd  | 84 +++++++++++++++++
 .../figures/devtool-ide-sdk-architecture.svg  |  1 +
 .../devtool-ide-sdk-nfs-architecture.mmd      | 89 +++++++++++++++++++
 .../devtool-ide-sdk-nfs-architecture.svg      |  1 +
 .../figures/devtool-ide-sdk-workflow.mmd      | 76 ++++++++++++++++
 .../figures/devtool-ide-sdk-workflow.svg      |  1 +
 .../sphinx-static/theme_overrides.css         |  5 ++
 8 files changed, 281 insertions(+), 3 deletions(-)
 create mode 100644 documentation/dev-manual/figures/devtool-ide-sdk-architecture.mmd
 create mode 100644 documentation/dev-manual/figures/devtool-ide-sdk-architecture.svg
 create mode 100644 documentation/dev-manual/figures/devtool-ide-sdk-nfs-architecture.mmd
 create mode 100644 documentation/dev-manual/figures/devtool-ide-sdk-nfs-architecture.svg
 create mode 100644 documentation/dev-manual/figures/devtool-ide-sdk-workflow.mmd
 create mode 100644 documentation/dev-manual/figures/devtool-ide-sdk-workflow.svg
diff mbox series

Patch

diff --git a/documentation/dev-manual/devtool.rst b/documentation/dev-manual/devtool.rst
index 3f716515f..15e7dbb73 100644
--- a/documentation/dev-manual/devtool.rst
+++ b/documentation/dev-manual/devtool.rst
@@ -480,7 +480,14 @@  directly in the IDE, independently of ``devtool ide-sdk`` and without calling
 configuration that points the IDE directly at the build tool, the
 cross-toolchain and the debugger provided by the SDK. ``devtool ide-sdk``
 only needs to be re-run later on, e.g. if a recipe's dependencies or its
-build configuration change.
+build configuration change:
+
+.. figure:: figures/devtool-ide-sdk-workflow.*
+   :width: 100%
+   :align: center
+   :class: max-natural-size
+
+   Typical ``devtool ide-sdk`` use case
 
 Let's now take a closer look at how ``devtool ide-sdk`` and the generated IDE
 configuration make use of a regular ``bitbake`` environment as a SDK to
@@ -542,7 +549,14 @@  The same architecture also allows the IDE to be configured to use further
 tools beyond the build tool, cross-compiler and debugger, e.g.
 ``clang-tidy``: any such tool just needs to be added as a native tool in
 ``recipe-sysroot-native``, in the Yocto reproducible way, for
-``devtool ide-sdk`` to be able to point the IDE at it.
+``devtool ide-sdk`` to be able to point the IDE at it:
+
+.. figure:: figures/devtool-ide-sdk-architecture.*
+   :width: 100%
+   :align: center
+   :class: max-natural-size
+
+   Architecture of ``devtool ide-sdk``
 
 To summarize the design described above, for supported build systems
 modified mode brings two key benefits:
@@ -722,7 +736,14 @@  This changes the relationship between the SDK, the target device and the
 debug symbols compared to the architecture described above: instead of a
 separate ``rootfs`` booted by the target and a ``rootfs-dbg`` only
 consulted by the debugger on the host, both the target and the debugger
-now use the same NFS-exported ``rootfs-dbg``.
+now use the same NFS-exported ``rootfs-dbg``:
+
+.. figure:: figures/devtool-ide-sdk-nfs-architecture.*
+   :width: 100%
+   :align: center
+   :class: max-natural-size
+
+   Architecture of ``devtool ide-sdk --nfs=rootfs-dbg``
 
 Use ``--nfs-extract-dir=DIR`` to extract below ``DIR/<image-recipe>/``
 instead of the default location in the ``devtool`` workspace, for example when
diff --git a/documentation/dev-manual/figures/devtool-ide-sdk-architecture.mmd b/documentation/dev-manual/figures/devtool-ide-sdk-architecture.mmd
new file mode 100644
index 000000000..4ba2e7e7a
--- /dev/null
+++ b/documentation/dev-manual/figures/devtool-ide-sdk-architecture.mmd
@@ -0,0 +1,84 @@ 
+---
+config:
+  theme: base
+  look: classic
+  htmlLabels: false
+  fontFamily: '"Nimbus Sans", Helvetica, Arial, sans-serif'
+  fontSize: 13.33
+  themeVariables:
+    primaryColor: "#99c1f1"
+    primaryBorderColor: "#62a0ea"
+    primaryTextColor: "#000000"
+    lineColor: "#000000"
+    edgeLabelBackground: "#ffffff"
+    clusterBkg: "#f6f5f4"
+    clusterBorder: "#c0bfbc"
+    titleColor: "#000000"
+    fontSize: 13.33px
+  themeCSS: |
+    .cluster-label tspan { font-weight: bold; }
+    rect { rx: 7.5px; ry: 7.5px; }
+  flowchart:
+    htmlLabels: false
+    useMaxWidth: false
+    curve: basis
+    padding: 10
+    nodeSpacing: 23
+    rankSpacing: 37
+    wrappingWidth: 300
+---
+%% Regenerate: npx -y @mermaid-js/mermaid-cli -b transparent -i devtool-ide-sdk-architecture.mmd -o devtool-ide-sdk-architecture.svg
+%%   && sed -i 's/<text /<text xml:space="preserve" /g' devtool-ide-sdk-architecture.svg
+%% (xml:space keeps the spaces between words in rsvg-convert, used for the PDF output)
+flowchart TB
+    idesdk["devtool ide-sdk<br/>(bitbake tinfoil client)"]
+    ideconfig[["IDE configuration<br/>(e.g. build tool preset,<br/>debugger launch config)"]]
+    ide["IDE (e.g. VSCode)"]
+    srcdir[["S = e.g. workspace/sources/&lt;recipe&gt;<br/>(source code, extracted by<br/>devtool modify, edited in the IDE)"]]
+
+    subgraph sdk["SDK (regular bitbake environment)"]
+        subgraph recipe_workdir["Recipe WORKDIR(s)"]
+            native_sysroot[["recipe-sysroot-native<br/>build tool (e.g. CMake)<br/>cross-compiler (e.g. &lt;arch&gt;-gcc)<br/>debugger (e.g. gdb)<br/>more tools..."]]
+            builddir[["B (build directory)<br/>build artifacts"]]
+            sysroot[["recipe-sysroot<br/>(target headers & libs)"]]
+            destdir[["D = image<br/>(non-stripped, relocated rpath,<br/>managed by pseudo)"]]
+        end
+
+        subgraph image_workdir["Image WORKDIR"]
+            rootfsdbg[["rootfs-dbg<br/>(debug symbols of other<br/>recipes' shared libraries)"]]
+            rootfs[["rootfs<br/>(target root filesystem)"]]
+        end
+    end
+
+    subgraph target["Target device"]
+        appbin["Application binary<br/>(running)"]
+        debugserver["debug-server<br/>(e.g. gdbserver)"]
+    end
+
+    idesdk -->|generates| ideconfig
+    idesdk -->|"generates the SDK (via bitbake)"| sdk
+    ideconfig --> ide
+    ideconfig --> native_sysroot
+    ide -->|"calls directly, no bitbake needed"| native_sysroot
+    ide -->|"edit source"| srcdir
+    native_sysroot -->|"reads source from"| srcdir
+    native_sysroot -->|"builds in"| builddir
+    native_sysroot -.->|"--sysroot"| sysroot
+    builddir -->|install| destdir
+    destdir -->|"deploy (--strip)"| appbin
+    native_sysroot -->|"debug symbols:<br/>unstripped binary"| destdir
+    native_sysroot -->|"debug symbols:<br/>shared libraries"| rootfsdbg
+    native_sysroot -->|"remote debug<br/>protocol"| debugserver
+    debugserver -->|"attach / run"| appbin
+    rootfs -->|"installed on target"| target
+
+    style sdk fill:#f6f5f4,stroke:#3584e4,stroke-width:1px
+    style recipe_workdir fill:#ffffff,stroke:#62a0ea,stroke-width:1px
+    style image_workdir fill:#ffffff,stroke:#57e389,stroke-width:1px
+    style target fill:#f6f5f4,stroke:#b5835a,stroke-width:1px
+
+    classDef orange fill:#ffbe6f,stroke:#ffa348,stroke-width:1px,color:#000000;
+    classDef green fill:#8ff0a4,stroke:#57e389,stroke-width:1px,color:#000000;
+    classDef default fill:#99c1f1,stroke:#62a0ea,stroke-width:1px,color:#000000;
+    class idesdk orange;
+    class srcdir green;
diff --git a/documentation/dev-manual/figures/devtool-ide-sdk-architecture.svg b/documentation/dev-manual/figures/devtool-ide-sdk-architecture.svg
new file mode 100644
index 000000000..09ba0551c
--- /dev/null
+++ b/documentation/dev-manual/figures/devtool-ide-sdk-architecture.svg
@@ -0,0 +1 @@ 
+<svg id="my-svg" width="830.0081176757812" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="flowchart" height="1614.60791015625" viewBox="4 3.999998092651367 830.0081176757812 1614.60791015625" role="graphics-document document" aria-roledescription="flowchart-v2" style="background-color: transparent;"><style>#my-svg{font-family:"Nimbus Sans",Helvetica,Arial,sans-serif;font-size:13.33px;fill:#000000;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#my-svg .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#my-svg .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#my-svg .error-icon{fill:hsl(32.7272727273, 75.8620689655%, 82.2549019608%);}#my-svg .error-text{fill:rgb(10.9224137931, 42.1293103448, 79.5775862068);stroke:rgb(10.9224137931, 42.1293103448, 79.5775862068);}#my-svg .edge-thickness-normal{stroke-width:1px;}#my-svg .edge-thickness-thick{stroke-width:3.5px;}#my-svg .edge-pattern-solid{stroke-dasharray:0;}#my-svg .edge-thickness-invisible{stroke-width:0;fill:none;}#my-svg .edge-pattern-dashed{stroke-dasharray:3;}#my-svg .edge-pattern-dotted{stroke-dasharray:2;}#my-svg .marker{fill:#000000;stroke:#000000;}#my-svg .marker.cross{stroke:#000000;}#my-svg svg{font-family:"Nimbus Sans",Helvetica,Arial,sans-serif;font-size:13.33px;}#my-svg p{margin:0;}#my-svg .label{font-family:"Nimbus Sans",Helvetica,Arial,sans-serif;color:#000000;}#my-svg .cluster-label text{fill:#000000;}#my-svg .cluster-label span{color:#000000;}#my-svg .cluster-label span p{background-color:transparent;}#my-svg .label text,#my-svg span{fill:#000000;color:#000000;}#my-svg .node rect,#my-svg .node circle,#my-svg .node ellipse,#my-svg .node polygon,#my-svg .node path{fill:#99c1f1;stroke:#62a0ea;stroke-width:1px;}#my-svg .rough-node .label text,#my-svg .node .label text,#my-svg .image-shape .label,#my-svg .icon-shape .label{text-anchor:middle;}#my-svg .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#my-svg .rough-node .label,#my-svg .node .label,#my-svg .image-shape .label,#my-svg .icon-shape .label{text-align:center;}#my-svg .node.clickable{cursor:pointer;}#my-svg .root .anchor path{fill:#000000!important;stroke-width:0;stroke:#000000;}#my-svg .arrowheadPath{fill:#0b0b0b;}#my-svg .edgePaths .path{stroke:#000000;stroke-width:1px;}#my-svg .flowchart-link{stroke:#000000;fill:none;}#my-svg .edgeLabel{background-color:#ffffff;text-align:center;}#my-svg .edgeLabel p{background-color:#ffffff;}#my-svg .edgeLabel rect{opacity:0.5;background-color:#ffffff;fill:#ffffff;}#my-svg .labelBkg{background-color:rgba(255, 255, 255, 0.5);}#my-svg .cluster rect{fill:#f6f5f4;stroke:#c0bfbc;stroke-width:1px;}#my-svg .cluster text{fill:#000000;}#my-svg .cluster span{color:#000000;}#my-svg .node .collapsed-indicator{fill:#c0bfbc;stroke:none;opacity:0.6;}#my-svg .node .collapsed-separator{stroke:#c0bfbc;stroke-width:0.75px;}#my-svg div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"Nimbus Sans",Helvetica,Arial,sans-serif;font-size:12px;background:hsl(32.7272727273, 75.8620689655%, 82.2549019608%);border:1px solid hsl(32.7272727273, 35.8620689655%, 72.2549019608%);border-radius:2px;pointer-events:none;z-index:100;}#my-svg .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#000000;}#my-svg rect.text{fill:none;stroke-width:0;}#my-svg .icon-shape,#my-svg .image-shape{background-color:#ffffff;text-align:center;}#my-svg .icon-shape p,#my-svg .image-shape p{background-color:#ffffff;padding:2px;}#my-svg .icon-shape .label rect,#my-svg .image-shape .label rect{opacity:0.5;background-color:#ffffff;fill:#ffffff;}#my-svg .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#my-svg .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#my-svg .node .neo-node{stroke:#62a0ea;}#my-svg [data-look="neo"].node rect,#my-svg [data-look="neo"].cluster rect,#my-svg [data-look="neo"].node polygon{stroke:url(#my-svg-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#my-svg [data-look="neo"].swimlane.cluster rect{filter:none;}#my-svg [data-look="neo"].node path{stroke:url(#my-svg-gradient);stroke-width:1px;}#my-svg [data-look="neo"].node .outer-path{filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#my-svg [data-look="neo"].node .neo-line path{stroke:#62a0ea;filter:none;}#my-svg [data-look="neo"].node circle{stroke:url(#my-svg-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#my-svg [data-look="neo"].node circle .state-start{fill:#000000;}#my-svg [data-look="neo"].icon-shape .icon{fill:url(#my-svg-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#my-svg [data-look="neo"].icon-shape .icon-neo path{stroke:url(#my-svg-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#my-svg .cluster-label tspan{font-weight:bold;}#my-svg rect{rx:7.5px;ry:7.5px;}#my-svg :root{--mermaid-font-family:"Nimbus Sans",Helvetica,Arial,sans-serif;}#my-svg .orange rect{fill:rgb(255, 190, 111)!important;stroke:rgb(255, 163, 72)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .orange polygon{fill:rgb(255, 190, 111)!important;stroke:rgb(255, 163, 72)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .orange ellipse{fill:rgb(255, 190, 111)!important;stroke:rgb(255, 163, 72)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .orange circle{fill:rgb(255, 190, 111)!important;stroke:rgb(255, 163, 72)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .orange path{fill:rgb(255, 190, 111)!important;stroke:rgb(255, 163, 72)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .orange tspan{fill:rgb(0, 0, 0)!important;}#my-svg .green rect{fill:rgb(143, 240, 164)!important;stroke:rgb(87, 227, 137)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .green polygon{fill:rgb(143, 240, 164)!important;stroke:rgb(87, 227, 137)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .green ellipse{fill:rgb(143, 240, 164)!important;stroke:rgb(87, 227, 137)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .green circle{fill:rgb(143, 240, 164)!important;stroke:rgb(87, 227, 137)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .green path{fill:rgb(143, 240, 164)!important;stroke:rgb(87, 227, 137)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .green tspan{fill:rgb(0, 0, 0)!important;}#my-svg .default rect{fill:rgb(153, 193, 241)!important;stroke:rgb(98, 160, 234)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .default polygon{fill:rgb(153, 193, 241)!important;stroke:rgb(98, 160, 234)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .default ellipse{fill:rgb(153, 193, 241)!important;stroke:rgb(98, 160, 234)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .default circle{fill:rgb(153, 193, 241)!important;stroke:rgb(98, 160, 234)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .default path{fill:rgb(153, 193, 241)!important;stroke:rgb(98, 160, 234)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .default tspan{fill:rgb(0, 0, 0)!important;}</style><g><marker id="my-svg_flowchart-v2-pointEnd" class="marker flowchart-v2" viewBox="0 0 10 10" refX="5" refY="5" markerUnits="userSpaceOnUse" markerWidth="8" markerHeight="8" orient="auto"><path d="M 0 0 L 10 5 L 0 10 z" class="arrowMarkerPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-pointStart" class="marker flowchart-v2" viewBox="0 0 10 10" refX="4.5" refY="5" markerUnits="userSpaceOnUse" markerWidth="8" markerHeight="8" orient="auto"><path d="M 0 5 L 10 10 L 10 0 z" class="arrowMarkerPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-pointEnd-margin" class="marker flowchart-v2" viewBox="0 0 11.5 14" refX="11.5" refY="7" markerUnits="userSpaceOnUse" markerWidth="10.5" markerHeight="14" orient="auto"><path d="M 0 0 L 11.5 7 L 0 14 z" class="arrowMarkerPath" style="stroke-width: 0; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-pointStart-margin" class="marker flowchart-v2" viewBox="0 0 11.5 14" refX="1" refY="7" markerUnits="userSpaceOnUse" markerWidth="11.5" markerHeight="14" orient="auto"><polygon points="0,7 11.5,14 11.5,0" class="arrowMarkerPath" style="stroke-width: 0; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-circleEnd" class="marker flowchart-v2" viewBox="0 0 10 10" refX="11" refY="5" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><circle cx="5" cy="5" r="5" class="arrowMarkerPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-circleStart" class="marker flowchart-v2" viewBox="0 0 10 10" refX="-1" refY="5" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><circle cx="5" cy="5" r="5" class="arrowMarkerPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-circleEnd-margin" class="marker flowchart-v2" viewBox="0 0 10 10" refY="5" refX="12.25" markerUnits="userSpaceOnUse" markerWidth="14" markerHeight="14" orient="auto"><circle cx="5" cy="5" r="5" class="arrowMarkerPath" style="stroke-width: 0; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-circleStart-margin" class="marker flowchart-v2" viewBox="0 0 10 10" refX="-2" refY="5" markerUnits="userSpaceOnUse" markerWidth="14" markerHeight="14" orient="auto"><circle cx="5" cy="5" r="5" class="arrowMarkerPath" style="stroke-width: 0; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-crossEnd" class="marker cross flowchart-v2" viewBox="0 0 11 11" refX="12" refY="5.2" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><path d="M 1,1 l 9,9 M 10,1 l -9,9" class="arrowMarkerPath" style="stroke-width: 2; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-crossStart" class="marker cross flowchart-v2" viewBox="0 0 11 11" refX="-1" refY="5.2" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><path d="M 1,1 l 9,9 M 10,1 l -9,9" class="arrowMarkerPath" style="stroke-width: 2; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-crossEnd-margin" class="marker cross flowchart-v2" viewBox="0 0 15 15" refX="17.7" refY="7.5" markerUnits="userSpaceOnUse" markerWidth="12" markerHeight="12" orient="auto"><path d="M 1,1 L 14,14 M 1,14 L 14,1" class="arrowMarkerPath" style="stroke-width: 2.5;"/></marker><marker id="my-svg_flowchart-v2-crossStart-margin" class="marker cross flowchart-v2" viewBox="0 0 15 15" refX="-3.5" refY="7.5" markerUnits="userSpaceOnUse" markerWidth="12" markerHeight="12" orient="auto"><path d="M 1,1 L 14,14 M 1,14 L 14,1" class="arrowMarkerPath" style="stroke-width: 2.5; stroke-dasharray: 1, 0;"/></marker><g class="root"><g class="clusters"><g class="cluster" id="my-svg-target" data-look="classic"><rect style="fill:#f6f5f4 !important;stroke:#b5835a !important;stroke-width:1px !important" x="413.88625066848033" y="1346.2819786071777" width="254" height="264.3259963989258"/><g class="cluster-label" transform="translate(498.55812566848033, 1346.2819786071777)"><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Target</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> device</tspan></tspan></text></g></g></g><g class="cluster" id="my-svg-sdk" data-look="classic"><rect style="fill:#f6f5f4 !important;stroke:#3584e4 !important;stroke-width:1px !important" x="189.5945431663876" y="393.9889945983887" width="631.1328125" height="809.6299896240234"/><g class="cluster-label" transform="translate(395.4265744163876, 393.9889945983887)"><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">SDK</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> (regular</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> bitbake</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> environment)</tspan></tspan></text></g></g></g><g class="cluster" id="my-svg-image_workdir" data-look="classic"><rect style="fill:#ffffff !important;stroke:#57e389 !important;stroke-width:1px !important" x="243.03003423781618" y="1061.2929878234863" width="425.81249999999994" height="118.32599639892578"/><g class="cluster-label" transform="translate(402.24897497267943, 1061.2929878234863)"><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Image</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> WORKDIR</tspan></tspan></text></g></g></g><g class="cluster" id="my-svg-recipe_workdir" data-look="classic"><rect style="fill:#ffffff !important;stroke:#62a0ea !important;stroke-width:1px !important" x="213.5945431663876" y="444.9889945983887" width="583.1328125" height="467.64099884033203"/><g class="cluster-label" transform="translate(440.9265744163876, 444.9889945983887)"><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Recipe</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> WORKDIR(s)</tspan></tspan></text></g></g></g></g><g class="edges edgePaths"><path d="M244.59787277948288,60.66299819946289L244.59787277948288,73.59193038759742Q244.59787277948288,80.66299819946289 237.5268049676174,80.66299819946289L164.67805517468167,80.66299819946289Q157.6069873628162,80.66299819946289 157.6069873628162,87.73406601132837L157.6069873628162,154.6629981994629" id="my-svg-L_idesdk_ideconfig_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_idesdk_ideconfig_0" data-points="W3sieCI6MjQ0LjU5Nzg3Mjc3OTQ4Mjg4LCJ5Ijo2MC42NjI5OTgxOTk0NjI4OX0seyJ4IjoyNDQuNTk3ODcyNzc5NDgyODgsInkiOjgwLjY2Mjk5ODE5OTQ2Mjg5fSx7IngiOjE1Ny42MDY5ODczNjI4MTYyLCJ5Ijo4MC42NjI5OTgxOTk0NjI4OX0seyJ4IjoxNTcuNjA2OTg3MzYyODE2MiwieSI6MTU4LjY2Mjk5ODE5OTQ2Mjl9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M291.65516444614957,60.66299819946289L291.65516444614957,73.59193038759742Q291.65516444614957,80.66299819946289 298.72623225801505,80.66299819946289L480.55107952118885,80.66299819946289Q487.62214733305433,80.66299819946289 487.62214733305433,87.73406601132837L487.62214733305433,109.66299819946289L487.62214733305433,268.9889945983887L487.62214733305433,334.9889945983887L487.62214733305433,356.9179267865232Q487.62214733305433,363.9889945983887 480.55107952118885,363.9889945983887L398.0968609782531,363.9889945983887Q391.02579316638764,363.9889945983887 391.02579316638764,371.06006241025415L391.02579316638764,389.9889945983887" id="my-svg-L_idesdk_sdk_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_idesdk_sdk_0" data-points="W3sieCI6MjkxLjY1NTE2NDQ0NjE0OTU3LCJ5Ijo2MC42NjI5OTgxOTk0NjI4OX0seyJ4IjoyOTEuNjU1MTY0NDQ2MTQ5NTcsInkiOjgwLjY2Mjk5ODE5OTQ2Mjg5fSx7IngiOjQ4Ny42MjIxNDczMzMwNTQzMywieSI6ODAuNjYyOTk4MTk5NDYyODl9LHsieCI6NDg3LjYyMjE0NzMzMzA1NDMzLCJ5IjoxMDkuNjYyOTk4MTk5NDYyODl9LHsieCI6NDg3LjYyMjE0NzMzMzA1NDMzLCJ5IjoyNjguOTg4OTk0NTk4Mzg4N30seyJ4Ijo0ODcuNjIyMTQ3MzMzMDU0MzMsInkiOjMzNC45ODg5OTQ1OTgzODg3fSx7IngiOjQ4Ny42MjIxNDczMzMwNTQzMywieSI6MzYzLjk4ODk5NDU5ODM4ODd9LHsieCI6MzkxLjAyNTc5MzE2NjM4NzY0LCJ5IjozNjMuOTg4OTk0NTk4Mzg4N30seyJ4IjozOTEuMDI1NzkzMTY2Mzg3NjQsInkiOjM5My45ODg5OTQ1OTgzODg3fV0=" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M132.7606331961495,211.98899459838867L132.7606331961495,225.79912294660298Q132.7606331961495,231.98899459838867 126.57076154436382,231.98899459838867L126.57076154436382,231.98899459838867Q120.38088989257811,231.98899459838867 120.38088989257811,238.17886625017437L120.38088989257811,247.98899459838867" id="my-svg-L_ideconfig_ide_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_ideconfig_ide_0" data-points="W3sieCI6MTMyLjc2MDYzMzE5NjE0OTUsInkiOjIxMS45ODg5OTQ1OTgzODg2N30seyJ4IjoxMzIuNzYwNjMzMTk2MTQ5NSwieSI6MjMxLjk4ODk5NDU5ODM4ODY3fSx7IngiOjEyMC4zODA4ODk4OTI1NzgxMSwieSI6MjMxLjk4ODk5NDU5ODM4ODY3fSx7IngiOjEyMC4zODA4ODk4OTI1NzgxMSwieSI6MjUxLjk4ODk5NDU5ODM4ODY3fV0=" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M182.45334152948283,211.98899459838867L182.45334152948283,224.9179267865232Q182.45334152948283,231.98899459838867 189.5244093413483,231.98899459838867L371.95472535452217,231.98899459838867Q379.02579316638764,231.98899459838867 379.02579316638764,239.06006241025415L379.02579316638764,268.9889945983887L379.02579316638764,334.9889945983887L379.02579316638764,383.9889945983887L379.02579316638753,434.9889945983887L379.02579316638753,481.9889945983887" id="my-svg-L_ideconfig_native_sysroot_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_ideconfig_native_sysroot_0" data-points="W3sieCI6MTgyLjQ1MzM0MTUyOTQ4MjgzLCJ5IjoyMTEuOTg4OTk0NTk4Mzg4Njd9LHsieCI6MTgyLjQ1MzM0MTUyOTQ4MjgzLCJ5IjoyMzEuOTg4OTk0NTk4Mzg4Njd9LHsieCI6Mzc5LjAyNTc5MzE2NjM4NzY0LCJ5IjoyMzEuOTg4OTk0NTk4Mzg4Njd9LHsieCI6Mzc5LjAyNTc5MzE2NjM4NzY0LCJ5IjoyNjguOTg4OTk0NTk4Mzg4N30seyJ4IjozNzkuMDI1NzkzMTY2Mzg3NjQsInkiOjMzNC45ODg5OTQ1OTgzODg3fSx7IngiOjM3OS4wMjU3OTMxNjYzODc2NCwieSI6MzgzLjk4ODk5NDU5ODM4ODd9LHsieCI6Mzc5LjAyNTc5MzE2NjM4NzUzLCJ5Ijo0MzQuOTg4OTk0NTk4Mzg4N30seyJ4IjozNzkuMDI1NzkzMTY2Mzg3NTMsInkiOjQ4NS45ODg5OTQ1OTgzODg3fV0=" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M143.71422322591144,285.9889945983887L143.71422322591144,298.9179267865232Q143.71422322591144,305.9889945983887 150.78529103777691,305.9889945983887L231.73904455095072,305.9889945983887Q238.8101123628162,305.9889945983887 238.8101123628162,313.06006241025415L238.8101123628162,356.9179267865232Q238.8101123628162,363.9889945983887 245.88118017468167,363.9889945983887L306.6391003545221,363.9889945983887Q313.7101681663876,363.9889945983887 313.7101681663876,371.06006241025415L313.7101681663876,383.9889945983887L313.7101681663876,434.9889945983887L313.7101681663875,481.9889945983887" id="my-svg-L_ide_native_sysroot_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_ide_native_sysroot_0" data-points="W3sieCI6MTQzLjcxNDIyMzIyNTkxMTQ0LCJ5IjoyODUuOTg4OTk0NTk4Mzg4N30seyJ4IjoxNDMuNzE0MjIzMjI1OTExNDQsInkiOjMwNS45ODg5OTQ1OTgzODg3fSx7IngiOjIzOC44MTAxMTIzNjI4MTYyLCJ5IjozMDUuOTg4OTk0NTk4Mzg4N30seyJ4IjoyMzguODEwMTEyMzYyODE2MiwieSI6MzYzLjk4ODk5NDU5ODM4ODd9LHsieCI6MzEzLjcxMDE2ODE2NjM4NzYsInkiOjM2My45ODg5OTQ1OTgzODg3fSx7IngiOjMxMy43MTAxNjgxNjYzODc2LCJ5IjozODMuOTg4OTk0NTk4Mzg4N30seyJ4IjozMTMuNzEwMTY4MTY2Mzg3NiwieSI6NDM0Ljk4ODk5NDU5ODM4ODd9LHsieCI6MzEzLjcxMDE2ODE2NjM4NzUsInkiOjQ4NS45ODg5OTQ1OTgzODg3fV0=" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M97.04755655924478,285.9889945983887L97.04755655924478,298.9179267865232Q97.04755655924478,305.9889945983887 89.9764887473793,305.9889945983887L73.03955071039597,305.9889945983887Q65.9684828985305,305.9889945983887 65.9684828985305,313.06006241025415L65.9684828985305,334.9889945983887L65.9684828985305,1279.950481414795L65.9684828985305,1309.2109107953122Q65.9684828985305,1316.2819786071777 73.03955071039597,1316.2819786071777L89.9764887473793,1316.2819786071777Q97.04755655924478,1316.2819786071777 97.04755655924478,1323.3530464190433L97.04755655924478,1342.2819786071777" id="my-svg-L_ide_srcdir_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_ide_srcdir_0" data-points="W3sieCI6OTcuMDQ3NTU2NTU5MjQ0NzgsInkiOjI4NS45ODg5OTQ1OTgzODg3fSx7IngiOjk3LjA0NzU1NjU1OTI0NDc4LCJ5IjozMDUuOTg4OTk0NTk4Mzg4N30seyJ4Ijo2NS45Njg0ODI4OTg1MzA1LCJ5IjozMDUuOTg4OTk0NTk4Mzg4N30seyJ4Ijo2NS45Njg0ODI4OTg1MzA1LCJ5IjozMzQuOTg4OTk0NTk4Mzg4N30seyJ4Ijo2NS45Njg0ODI4OTg1MzA1LCJ5IjoxMjc5Ljk1MDQ4MTQxNDc5NX0seyJ4Ijo2NS45Njg0ODI4OTg1MzA1LCJ5IjoxMzE2LjI4MTk3ODYwNzE3Nzd9LHsieCI6OTcuMDQ3NTU2NTU5MjQ0NzgsInkiOjEzMTYuMjgxOTc4NjA3MTc3N30seyJ4Ijo5Ny4wNDc1NTY1NTkyNDQ3OCwieSI6MTM0Ni4yODE5Nzg2MDcxNzc3fV0=" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M276.3869538806733,568.6409950256348L276.3869538806733,591.5699272137692Q276.3869538806733,598.6409950256348 269.3158860688078,598.6409950256348L261.4466377639673,598.6409950256348Q254.37556995210184,598.6409950256348 254.37556995210184,605.7120628375003L254.37556995210184,922.6299934387207L254.37556995210184,945.5589256268552Q254.37556995210184,952.6299934387207 247.30450214023637,952.6299934387207L214.35299937111017,952.6299934387207Q207.2819315592447,952.6299934387207 207.2819315592447,959.7010612505861L207.28193155924475,1223.618984222412L207.28193155924475,1236.5479164105466Q207.28193155924475,1243.618984222412 200.21086374737928,1243.618984222412L197.73581187111023,1243.618984222412Q190.66474405924475,1243.618984222412 190.66474405924475,1250.6900520342776L190.66474405924475,1309.2109107953122Q190.66474405924475,1316.2819786071777 183.59367624737928,1316.2819786071777L179.16618093035504,1316.2819786071777Q172.09511311848956,1316.2819786071777 172.09511311848956,1323.3530464190433L172.09511311848956,1342.2819786071777" id="my-svg-L_native_sysroot_srcdir_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_native_sysroot_srcdir_0" data-points="W3sieCI6Mjc2LjM4Njk1Mzg4MDY3MzMsInkiOjU2OC42NDA5OTUwMjU2MzQ4fSx7IngiOjI3Ni4zODY5NTM4ODA2NzMzLCJ5Ijo1OTguNjQwOTk1MDI1NjM0OH0seyJ4IjoyNTQuMzc1NTY5OTUyMTAxODQsInkiOjU5OC42NDA5OTUwMjU2MzQ4fSx7IngiOjI1NC4zNzU1Njk5NTIxMDE4NCwieSI6OTIyLjYyOTk5MzQzODcyMDd9LHsieCI6MjU0LjM3NTU2OTk1MjEwMTg0LCJ5Ijo5NTIuNjI5OTkzNDM4NzIwN30seyJ4IjoyMDcuMjgxOTMxNTU5MjQ0NywieSI6OTUyLjYyOTk5MzQzODcyMDd9LHsieCI6MjA3LjI4MTkzMTU1OTI0NDc1LCJ5IjoxMjIzLjYxODk4NDIyMjQxMn0seyJ4IjoyMDcuMjgxOTMxNTU5MjQ0NzUsInkiOjEyNDMuNjE4OTg0MjIyNDEyfSx7IngiOjE5MC42NjQ3NDQwNTkyNDQ3NSwieSI6MTI0My42MTg5ODQyMjI0MTJ9LHsieCI6MTkwLjY2NDc0NDA1OTI0NDc1LCJ5IjoxMzE2LjI4MTk3ODYwNzE3Nzd9LHsieCI6MTcyLjA5NTExMzExODQ4OTU2LCJ5IjoxMzE2LjI4MTk3ODYwNzE3Nzd9LHsieCI6MTcyLjA5NTExMzExODQ4OTU2LCJ5IjoxMzQ2LjI4MTk3ODYwNzE3Nzd9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M360.36418602353046,568.6409950256348L360.36418602353046,615.5699272137692Q360.36418602353046,622.6409950256348 367.43525383539594,622.6409950256348L382.2969128545222,622.6409950256348Q389.36798066638767,622.6409950256348 389.36798066638767,629.7120628375003L389.36798066638767,690.6409950256348" id="my-svg-L_native_sysroot_builddir_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_native_sysroot_builddir_0" data-points="W3sieCI6MzYwLjM2NDE4NjAyMzUzMDQ2LCJ5Ijo1NjguNjQwOTk1MDI1NjM0OH0seyJ4IjozNjAuMzY0MTg2MDIzNTMwNDYsInkiOjYyMi42NDA5OTUwMjU2MzQ4fSx7IngiOjM4OS4zNjc5ODA2NjYzODc2NywieSI6NjIyLjY0MDk5NTAyNTYzNDh9LHsieCI6Mzg5LjM2Nzk4MDY2NjM4NzY3LCJ5Ijo2OTQuNjQwOTk1MDI1NjM0OH1d" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M388.3565967378162,568.6409950256348L388.3565967378162,603.5699272137692Q388.3565967378162,610.6409950256348 395.42766454968165,610.6409950256348L583.7266003545221,610.6409950256348Q590.7976681663877,610.6409950256348 590.7976681663877,617.7120628375003L590.7976681663877,690.6409950256348" id="my-svg-L_native_sysroot_sysroot_0" class="edge-thickness-normal edge-pattern-dotted edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_native_sysroot_sysroot_0" data-points="W3sieCI6Mzg4LjM1NjU5NjczNzgxNjIsInkiOjU2OC42NDA5OTUwMjU2MzQ4fSx7IngiOjM4OC4zNTY1OTY3Mzc4MTYyLCJ5Ijo2MTAuNjQwOTk1MDI1NjM0OH0seyJ4Ijo1OTAuNzk3NjY4MTY2Mzg3NywieSI6NjEwLjY0MDk5NTAyNTYzNDh9LHsieCI6NTkwLjc5NzY2ODE2NjM4NzcsInkiOjY5NC42NDA5OTUwMjU2MzQ4fV0=" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M389.36798066638767,733.3039786038389L389.36798066638767,733.3039970397949L389.36798066638767,798.2329292279294Q389.36798066638767,805.3039970397949 396.43904847825314,805.3039970397949L543.6286836878555,805.3039970397949Q550.699751499721,805.3039970397949 550.699751499721,812.3750648516605L550.699751499721,831.3039970397949" id="my-svg-L_builddir_destdir_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_builddir_destdir_0" data-points="W3sieCI6Mzg5LjM2Nzk4MDY2NjM4NzY3LCJ5Ijo3MzMuMzAzOTc4NjAzODM4OX0seyJ4IjozODkuMzY3OTgwNjY2Mzg3NjcsInkiOjczMy4zMDM5OTcwMzk3OTQ5fSx7IngiOjM4OS4zNjc5ODA2NjYzODc2NywieSI6ODA1LjMwMzk5NzAzOTc5NDl9LHsieCI6NTUwLjY5OTc1MTQ5OTcyMSwieSI6ODA1LjMwMzk5NzAzOTc5NDl9LHsieCI6NTUwLjY5OTc1MTQ5OTcyMSwieSI6ODM1LjMwMzk5NzAzOTc5NDl9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M581.0476681663876,888.6299934387207L581.0476681663876,922.6299934387207L581.0476681663876,945.5589256268552Q581.0476681663876,952.6299934387207 588.118735978253,952.6299934387207L673.7714664259506,952.6299934387207Q680.8425342378162,952.6299934387207 680.8425342378162,959.7010612505862L680.8425342378162,1223.618984222412L680.8425342378162,1242.5041236877441Q680.8425342378162,1243.618984222412 681.9573947724841,1243.618984222412L681.9573947724841,1243.618984222412Q683.0722553071521,1243.618984222412 683.0722553071521,1244.73384475708L683.0722553071521,1309.2109107953122Q683.0722553071521,1316.2819786071777 676.0011874952866,1316.2819786071777L616.9573184803459,1316.2819786071777Q609.8862506684803,1316.2819786071777 609.8862506684803,1323.3530464190433L609.8862506684802,1336.2819786071777L609.8862506684802,1500.873908994775Q609.8862506684802,1507.9449768066406 602.8151828566147,1507.9449768066406L594.0239851470124,1507.9449768066406Q586.9529173351469,1507.9449768066406 586.9529173351469,1515.0160446185062L586.9529173351469,1533.9449768066406" id="my-svg-L_destdir_appbin_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_destdir_appbin_0" data-points="W3sieCI6NTgxLjA0NzY2ODE2NjM4NzYsInkiOjg4OC42Mjk5OTM0Mzg3MjA3fSx7IngiOjU4MS4wNDc2NjgxNjYzODc2LCJ5Ijo5MjIuNjI5OTkzNDM4NzIwN30seyJ4Ijo1ODEuMDQ3NjY4MTY2Mzg3NiwieSI6OTUyLjYyOTk5MzQzODcyMDd9LHsieCI6NjgwLjg0MjUzNDIzNzgxNjIsInkiOjk1Mi42Mjk5OTM0Mzg3MjA3fSx7IngiOjY4MC44NDI1MzQyMzc4MTYyLCJ5IjoxMjIzLjYxODk4NDIyMjQxMn0seyJ4Ijo2ODAuODQyNTM0MjM3ODE2MiwieSI6MTI0My42MTg5ODQyMjI0MTJ9LHsieCI6NjgzLjA3MjI1NTMwNzE1MjEsInkiOjEyNDMuNjE4OTg0MjIyNDEyfSx7IngiOjY4My4wNzIyNTUzMDcxNTIxLCJ5IjoxMzE2LjI4MTk3ODYwNzE3Nzd9LHsieCI6NjA5Ljg4NjI1MDY2ODQ4MDMsInkiOjEzMTYuMjgxOTc4NjA3MTc3N30seyJ4Ijo2MDkuODg2MjUwNjY4NDgwMiwieSI6MTMzNi4yODE5Nzg2MDcxNzc3fSx7IngiOjYwOS44ODYyNTA2Njg0ODAyLCJ5IjoxNTA3Ljk0NDk3NjgwNjY0MDZ9LHsieCI6NTg2Ljk1MjkxNzMzNTE0NjksInkiOjE1MDcuOTQ0OTc2ODA2NjQwNn0seyJ4Ijo1ODYuOTUyOTE3MzM1MTQ2OSwieSI6MTUzNy45NDQ5NzY4MDY2NDA2fV0=" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M416.3490074521019,568.6409950256348L416.3490074521019,591.5699272137692Q416.3490074521019,598.6409950256348 423.42007526396736,598.6409950256348L765.6562878545221,598.6409950256348Q772.7273556663877,598.6409950256348 772.7273556663877,605.7120628375003L772.7273556663877,798.2329292279294Q772.7273556663877,805.3039970397949 765.6562878545221,805.3039970397949L618.4666526449198,805.3039970397949Q611.3955848330543,805.3039970397949 611.3955848330543,812.3750648516605L611.3955848330543,831.3039970397949" id="my-svg-L_native_sysroot_destdir_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_native_sysroot_destdir_0" data-points="W3sieCI6NDE2LjM0OTAwNzQ1MjEwMTksInkiOjU2OC42NDA5OTUwMjU2MzQ4fSx7IngiOjQxNi4zNDkwMDc0NTIxMDE5LCJ5Ijo1OTguNjQwOTk1MDI1NjM0OH0seyJ4Ijo3NzIuNzI3MzU1NjY2Mzg3NywieSI6NTk4LjY0MDk5NTAyNTYzNDh9LHsieCI6NzcyLjcyNzM1NTY2NjM4NzcsInkiOjgwNS4zMDM5OTcwMzk3OTQ5fSx7IngiOjYxMS4zOTU1ODQ4MzMwNTQzLCJ5Ijo4MDUuMzAzOTk3MDM5Nzk0OX0seyJ4Ijo2MTEuMzk1NTg0ODMzMDU0MywieSI6ODM1LjMwMzk5NzAzOTc5NDl9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M332.37177530924475,568.6409950256348L332.37177530924475,615.5699272137692Q332.37177530924475,622.6409950256348 325.3007074973793,622.6409950256348L310.4390484782531,622.6409950256348Q303.3679806663876,622.6409950256348 303.3679806663876,629.7120628375003L303.3679806663876,922.6299934387207L303.3679806663876,945.5589256268552Q303.3679806663876,952.6299934387207 310.4390484782531,952.6299934387207L345.13865392595073,952.6299934387207Q352.2097217378162,952.6299934387207 352.2097217378162,959.7010612505862L352.2097217378162,1051.2929878234863L352.2097217378162,1098.2929878234863" id="my-svg-L_native_sysroot_rootfsdbg_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_native_sysroot_rootfsdbg_0" data-points="W3sieCI6MzMyLjM3MTc3NTMwOTI0NDc1LCJ5Ijo1NjguNjQwOTk1MDI1NjM0OH0seyJ4IjozMzIuMzcxNzc1MzA5MjQ0NzUsInkiOjYyMi42NDA5OTUwMjU2MzQ4fSx7IngiOjMwMy4zNjc5ODA2NjYzODc2LCJ5Ijo2MjIuNjQwOTk1MDI1NjM0OH0seyJ4IjozMDMuMzY3OTgwNjY2Mzg3NiwieSI6OTIyLjYyOTk5MzQzODcyMDd9LHsieCI6MzAzLjM2Nzk4MDY2NjM4NzYsInkiOjk1Mi42Mjk5OTM0Mzg3MjA3fSx7IngiOjM1Mi4yMDk3MjE3Mzc4MTYyLCJ5Ijo5NTIuNjI5OTkzNDM4NzIwN30seyJ4IjozNTIuMjA5NzIxNzM3ODE2MiwieSI6MTA1MS4yOTI5ODc4MjM0ODYzfSx7IngiOjM1Mi4yMDk3MjE3Mzc4MTYyLCJ5IjoxMTAyLjI5Mjk4NzgyMzQ4NjN9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M304.379364594959,568.6409950256348L304.379364594959,603.5699272137692Q304.379364594959,610.6409950256348 297.3082967830935,610.6409950256348L285.94284312111023,610.6409950256348Q278.87177530924475,610.6409950256348 278.87177530924475,617.7120628375003L278.87177530924475,922.6299934387207L278.87177530924475,957.5589256268552Q278.87177530924475,964.6299934387207 271.8007074973793,964.6299934387207L237.10110204968163,964.6299934387207Q230.03003423781615,964.6299934387207 230.03003423781615,971.7010612505861L230.0300342378162,1223.618984222412L230.0300342378162,1236.5479164105466Q230.0300342378162,1243.618984222412 237.10110204968169,1243.618984222412L356.2115453066241,1243.618984222412Q363.28261311848956,1243.618984222412 363.28261311848956,1250.6900520342776L363.28261311848956,1309.2109107953122Q363.28261311848956,1316.2819786071777 370.35368093035504,1316.2819786071777L510.81518285661485,1316.2819786071777Q517.8862506684803,1316.2819786071777 517.8862506684803,1323.3530464190433L517.8862506684802,1336.2819786071777L517.8862506684802,1383.2819786071777" id="my-svg-L_native_sysroot_debugserver_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_native_sysroot_debugserver_0" data-points="W3sieCI6MzA0LjM3OTM2NDU5NDk1OSwieSI6NTY4LjY0MDk5NTAyNTYzNDh9LHsieCI6MzA0LjM3OTM2NDU5NDk1OSwieSI6NjEwLjY0MDk5NTAyNTYzNDh9LHsieCI6Mjc4Ljg3MTc3NTMwOTI0NDc1LCJ5Ijo2MTAuNjQwOTk1MDI1NjM0OH0seyJ4IjoyNzguODcxNzc1MzA5MjQ0NzUsInkiOjkyMi42Mjk5OTM0Mzg3MjA3fSx7IngiOjI3OC44NzE3NzUzMDkyNDQ3NSwieSI6OTY0LjYyOTk5MzQzODcyMDd9LHsieCI6MjMwLjAzMDAzNDIzNzgxNjE1LCJ5Ijo5NjQuNjI5OTkzNDM4NzIwN30seyJ4IjoyMzAuMDMwMDM0MjM3ODE2MiwieSI6MTIyMy42MTg5ODQyMjI0MTJ9LHsieCI6MjMwLjAzMDAzNDIzNzgxNjIsInkiOjEyNDMuNjE4OTg0MjIyNDEyfSx7IngiOjM2My4yODI2MTMxMTg0ODk1NiwieSI6MTI0My42MTg5ODQyMjI0MTJ9LHsieCI6MzYzLjI4MjYxMzExODQ4OTU2LCJ5IjoxMzE2LjI4MTk3ODYwNzE3Nzd9LHsieCI6NTE3Ljg4NjI1MDY2ODQ4MDMsInkiOjEzMTYuMjgxOTc4NjA3MTc3N30seyJ4Ijo1MTcuODg2MjUwNjY4NDgwMiwieSI6MTMzNi4yODE5Nzg2MDcxNzc3fSx7IngiOjUxNy44ODYyNTA2Njg0ODAyLCJ5IjoxMzg3LjI4MTk3ODYwNzE3Nzd9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M517.8862506684803,1435.9449768066406L517.8862506684803,1500.873908994775Q517.8862506684803,1507.9449768066406 524.9573184803457,1507.9449768066406L533.7485161899481,1507.9449768066406Q540.8195840018136,1507.9449768066406 540.8195840018136,1515.0160446185062L540.8195840018136,1533.9449768066406" id="my-svg-L_debugserver_appbin_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_debugserver_appbin_0" data-points="W3sieCI6NTE3Ljg4NjI1MDY2ODQ4MDMsInkiOjE0MzUuOTQ0OTc2ODA2NjQwNn0seyJ4Ijo1MTcuODg2MjUwNjY4NDgwMywieSI6MTUwNy45NDQ5NzY4MDY2NDA2fSx7IngiOjU0MC44MTk1ODQwMDE4MTM2LCJ5IjoxNTA3Ljk0NDk3NjgwNjY0MDZ9LHsieCI6NTQwLjgxOTU4NDAwMTgxMzYsInkiOjE1MzcuOTQ0OTc2ODA2NjQwNn1d" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M566.1159717378155,1155.6189823150635L566.1159717378162,1155.618984222412L566.1159717378162,1189.618984222412L566.1159717378162,1223.618984222412L566.1159717378162,1242.5041236877441Q566.1159717378162,1243.618984222412 565.0011112031482,1243.618984222412L565.0011112031482,1243.618984222412Q563.8862506684802,1243.618984222412 563.8862506684802,1244.73384475708L563.8862506684803,1342.2819786071777" id="my-svg-L_rootfs_target_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_rootfs_target_0" data-points="W3sieCI6NTY2LjExNTk3MTczNzgxNTUsInkiOjExNTUuNjE4OTgyMzE1MDYzNX0seyJ4Ijo1NjYuMTE1OTcxNzM3ODE2MiwieSI6MTE1NS42MTg5ODQyMjI0MTJ9LHsieCI6NTY2LjExNTk3MTczNzgxNjIsInkiOjExODkuNjE4OTg0MjIyNDEyfSx7IngiOjU2Ni4xMTU5NzE3Mzc4MTYyLCJ5IjoxMjIzLjYxODk4NDIyMjQxMn0seyJ4Ijo1NjYuMTE1OTcxNzM3ODE2MiwieSI6MTI0My42MTg5ODQyMjI0MTJ9LHsieCI6NTYzLjg4NjI1MDY2ODQ4MDIsInkiOjEyNDMuNjE4OTg0MjIyNDEyfSx7IngiOjU2My44ODYyNTA2Njg0ODAzLCJ5IjoxMzQ2LjI4MTk3ODYwNzE3Nzd9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/></g><g class="edgeLabels"><g class="edgeLabel" transform="translate(157.1566928681873, 109.66299819946289)"><g class="label" data-id="L_idesdk_ideconfig_0" transform="translate(-0.16689300537109375, -10.329999923706055)"><g><rect class="background" style="" x="-31.3828125" y="1.3299999237060547" width="63.09941101074219" height="18"/><text xml:space="preserve" y="-10.1" text-anchor="middle" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">generates</tspan></tspan></text></g></g></g><g class="edgeLabel" transform="translate(487.15339733305433, 185.32599639892578)"><g class="label" data-id="L_idesdk_sdk_0" transform="translate(0, -10.329999923706055)"><g><rect class="background" style="" x="-96.03125" y="1.3299999237060547" width="192.0625" height="18"/><text xml:space="preserve" y="-10.1" text-anchor="middle" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">generates</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> the</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> SDK</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> (via</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> bitbake)</tspan></tspan></text></g></g></g><g class="edgeLabel" transform="translate(238.5366748628162, 334.9889945983887)"><g class="label" data-id="L_ide_native_sysroot_0" transform="translate(0, -10.329999923706055)"><g><rect class="background" style="" x="-96.2265625" y="1.3299999237060547" width="192.453125" height="18"/><text xml:space="preserve" y="-10.1" text-anchor="middle" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">calls</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> directly,</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> no</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> bitbake</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> needed</tspan></tspan></text></g></g></g><g class="edgeLabel" transform="translate(65.5856703985305, 803.8039894104004)"><g class="label" data-id="L_ide_srcdir_0" transform="translate(0, -10.329999923706055)"><g><rect class="background" style="" x="-34.6171875" y="1.3299999237060547" width="69.234375" height="18"/><text xml:space="preserve" y="-10.1" text-anchor="middle" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">edit</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> source</tspan></tspan></text></g></g></g><g class="edgeLabel" transform="translate(190.2350565592447, 1279.950481414795)"><g class="label" data-id="L_native_sysroot_srcdir_0" transform="translate(0, -10.329999923706055)"><g><rect class="background" style="" x="-55.5703125" y="1.3299999237060547" width="111.140625" height="18"/><text xml:space="preserve" y="-10.1" text-anchor="middle" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">reads</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> source</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> from</tspan></tspan></text></g></g></g><g class="edgeLabel" transform="translate(389.32110566638767, 661.6409950256348)"><g class="label" data-id="L_native_sysroot_builddir_0" transform="translate(0, -10.329999923706055)"><g><rect class="background" style="" x="-26.453125" y="1.3299999237060547" width="52.90625" height="18"/><text xml:space="preserve" y="-10.1" text-anchor="middle" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">builds</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> in</tspan></tspan></text></g></g></g><g class="edgeLabel" transform="translate(590.5282513573056, 661.6409950256348)"><g class="label" data-id="L_native_sysroot_sysroot_0" transform="translate(-0.14464569091796875, -10.329999923706055)"><g><rect class="background" style="" x="-27.5859375" y="1.3299999237060547" width="55.46116638183594" height="18"/><text xml:space="preserve" y="-10.1" text-anchor="middle" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">--sysroot</tspan></tspan></text></g></g></g><g class="edgeLabel" transform="translate(388.8885189964658, 766.3039970397949)"><g class="label" data-id="L_builddir_destdir_0" transform="translate(-0.020538330078125, -10.329999923706055)"><g><rect class="background" style="" x="-19" y="1.3299999237060547" width="38.04107666015625" height="18"/><text xml:space="preserve" y="-10.1" text-anchor="middle" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">install</tspan></tspan></text></g></g></g><g class="edgeLabel" transform="translate(682.7988178071521, 1279.950481414795)"><g class="label" data-id="L_destdir_appbin_0" transform="translate(0, -10.329999923706055)"><g><rect class="background" style="" x="-44.7265625" y="1.3299999237060547" width="89.453125" height="18"/><text xml:space="preserve" y="-10.1" text-anchor="middle" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">deploy</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> (--strip)</tspan></tspan></text></g></g></g><g class="edgeLabel" transform="translate(772.6177288963681, 713.9724960327148)"><g class="label" data-id="L_native_sysroot_destdir_0" transform="translate(-0.16381072998046875, -17.661499977111816)"><g><rect class="background" style="" x="-53.2265625" y="1.3299999237060547" width="106.78074645996094" height="32.66300010681152"/><text xml:space="preserve" y="-10.1" text-anchor="middle" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">debug</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> symbols:</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">unstripped</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> binary</tspan></tspan></text></g></g></g><g class="edgeLabel" transform="translate(351.7175342378162, 1010.9614906311035)"><g class="label" data-id="L_native_sysroot_rootfsdbg_0" transform="translate(0, -17.661499977111816)"><g><rect class="background" style="" x="-48.5078125" y="1.3299999237060547" width="97.015625" height="32.66300010681152"/><text xml:space="preserve" y="-10.1" text-anchor="middle" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">debug</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> symbols:</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">shared</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> libraries</tspan></tspan></text></g></g></g><g class="edgeLabel" transform="translate(363.2044881184895, 1279.950481414795)"><g class="label" data-id="L_native_sysroot_debugserver_0" transform="translate(0, -17.661499977111816)"><g><rect class="background" style="" x="-42.921875" y="1.3299999237060547" width="85.84375" height="32.66300010681152"/><text xml:space="preserve" y="-10.1" text-anchor="middle" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">remote</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> debug</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">protocol</tspan></tspan></text></g></g></g><g class="edgeLabel" transform="translate(517.8081256684803, 1468.9449768066406)"><g class="label" data-id="L_debugserver_appbin_0" transform="translate(0, -10.329999923706055)"><g><rect class="background" style="" x="-35.421875" y="1.3299999237060547" width="70.84375" height="18"/><text xml:space="preserve" y="-10.1" text-anchor="middle" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">attach</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> /</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> run</tspan></tspan></text></g></g></g><g class="edgeLabel" transform="translate(563.4792529878162, 1279.950481414795)"><g class="label" data-id="L_rootfs_target_0" transform="translate(-0.1398773193359375, -10.329999923706055)"><g><rect class="background" style="" x="-54.453125" y="1.3299999237060547" width="109.18600463867188" height="18"/><text xml:space="preserve" y="-10.1" text-anchor="middle" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">installed</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> on</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> target</tspan></tspan></text></g></g></g></g><g class="nodes"><g class="node default orange" id="my-svg-flowchart-idesdk-0" data-look="classic" transform="translate(268.1265186128162, 36.331499099731445)"><rect class="basic label-container" style="fill:#ffbe6f !important;stroke:#ffa348 !important;stroke-width:1px !important" x="-80.5859375" y="-24.33150005340576" width="161.171875" height="48.66300010681152"/><g class="label" style="color:#000000 !important" transform="translate(0, -14.331500053405762)"><rect/><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style="fill:#000000 !important"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">devtool</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> ide-sdk</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">(bitbake</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> tinfoil</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> client)</tspan></tspan></text></g></g></g><g class="node default" id="my-svg-flowchart-ideconfig-1" data-look="classic" transform="translate(157.6069873628162, 185.32599639892578)"><polygon points="0,0 153.078125,0 153.078125,-53.32599639892578 0,-53.32599639892578 0,0 -8,0 161.078125,0 161.078125,-53.32599639892578 -8,-53.32599639892578 -8,0" class="label-container" transform="translate(-76.5390625,26.66299819946289)" style="fill:#99c1f1 !important;stroke:#62a0ea !important;stroke-width:1px !important"/><g class="label" style="color:#000000 !important" transform="translate(0, -21.66299819946289)"><rect/><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style="fill:#000000 !important"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">IDE</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> configuration</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">(e.g.</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> build</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> tool</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> preset,</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="2.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">debugger</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> launch</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> config)</tspan></tspan></text></g></g></g><g class="node default" id="my-svg-flowchart-ide-2" data-look="classic" transform="translate(120.38088989257811, 268.9889945983887)"><rect class="basic label-container" style="fill:#99c1f1 !important;stroke:#62a0ea !important;stroke-width:1px !important" x="-80" y="-17" width="160" height="34"/><g class="label" style="color:#000000 !important" transform="translate(0, -7)"><rect/><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style="fill:#000000 !important"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">IDE</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> (e.g.</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> VSCode)</tspan></tspan></text></g></g></g><g class="node default green" id="my-svg-flowchart-srcdir-3" data-look="classic" transform="translate(134.5713348388672, 1372.9449768066406)"><polygon points="0,0 229.14266967773438,0 229.14266967773438,-53.32599639892578 0,-53.32599639892578 0,0 -8,0 237.14266967773438,0 237.14266967773438,-53.32599639892578 -8,-53.32599639892578 -8,0" class="label-container" transform="translate(-114.57133483886719,26.66299819946289)" style="fill:#8ff0a4 !important;stroke:#57e389 !important;stroke-width:1px !important"/><g class="label" style="color:#000000 !important" transform="translate(0, -21.66299819946289)"><rect/><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style="fill:#000000 !important"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">S</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> =</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> e.g.</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> workspace/sources/&lt;recipe&gt;</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">(source</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> code,</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> extracted</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> by</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="2.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">devtool</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> modify,</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> edited</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> in</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> the</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> IDE)</tspan></tspan></text></g></g></g><g class="node default" id="my-svg-flowchart-native_sysroot-4" data-look="classic" transform="translate(346.3679806663876, 527.3149948120117)"><polygon points="0,0 201.546875,0 201.546875,-82.6520004272461 0,-82.6520004272461 0,0 -8,0 209.546875,0 209.546875,-82.6520004272461 -8,-82.6520004272461 -8,0" class="label-container" transform="translate(-100.7734375,41.32600021362305)" style="fill:#99c1f1 !important;stroke:#62a0ea !important;stroke-width:1px !important"/><g class="label" style="color:#000000 !important" transform="translate(0, -36.32600021362305)"><rect/><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style="fill:#000000 !important"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">recipe-sysroot-native</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">build</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> tool</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> (e.g.</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> CMake)</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="2.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">cross-compiler</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> (e.g.</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> &lt;arch&gt;-gcc)</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="3.2em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">debugger</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> (e.g.</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> gdb)</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="4.300000000000001em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">more</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> tools...</tspan></tspan></text></g></g></g><g class="node default" id="my-svg-flowchart-builddir-5" data-look="classic" transform="translate(389.36798066638767, 713.9724960327148)"><polygon points="0,0 130,0 130,-38.66300010681152 0,-38.66300010681152 0,0 -8,0 138,0 138,-38.66300010681152 -8,-38.66300010681152 -8,0" class="label-container" transform="translate(-65,19.33150005340576)" style="fill:#99c1f1 !important;stroke:#62a0ea !important;stroke-width:1px !important"/><g class="label" style="color:#000000 !important" transform="translate(0, -14.331500053405762)"><rect/><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style="fill:#000000 !important"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">B</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> (build</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> directory)</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">build</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> artifacts</tspan></tspan></text></g></g></g><g class="node default" id="my-svg-flowchart-sysroot-6" data-look="classic" transform="translate(590.7976681663877, 713.9724960327148)"><polygon points="0,0 140.859375,0 140.859375,-38.66300010681152 0,-38.66300010681152 0,0 -8,0 148.859375,0 148.859375,-38.66300010681152 -8,-38.66300010681152 -8,0" class="label-container" transform="translate(-70.4296875,19.33150005340576)" style="fill:#99c1f1 !important;stroke:#62a0ea !important;stroke-width:1px !important"/><g class="label" style="color:#000000 !important" transform="translate(0, -14.331500053405762)"><rect/><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style="fill:#000000 !important"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">recipe-sysroot</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">(target</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> headers</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> &amp;</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> libs)</tspan></tspan></text></g></g></g><g class="node default" id="my-svg-flowchart-destdir-7" data-look="classic" transform="translate(581.0476681663877, 861.9669952392578)"><polygon points="0,0 187.6875,0 187.6875,-53.32599639892578 0,-53.32599639892578 0,0 -8,0 195.6875,0 195.6875,-53.32599639892578 -8,-53.32599639892578 -8,0" class="label-container" transform="translate(-93.84375,26.66299819946289)" style="fill:#99c1f1 !important;stroke:#62a0ea !important;stroke-width:1px !important"/><g class="label" style="color:#000000 !important" transform="translate(0, -21.66299819946289)"><rect/><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style="fill:#000000 !important"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">D</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> =</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> image</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">(non-stripped,</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> relocated</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> rpath,</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="2.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">managed</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> by</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> pseudo)</tspan></tspan></text></g></g></g><g class="node default" id="my-svg-flowchart-rootfsdbg-8" data-look="classic" transform="translate(352.2097217378162, 1128.9559860229492)"><polygon points="0,0 154.359375,0 154.359375,-53.32599639892578 0,-53.32599639892578 0,0 -8,0 162.359375,0 162.359375,-53.32599639892578 -8,-53.32599639892578 -8,0" class="label-container" transform="translate(-77.1796875,26.66299819946289)" style="fill:#99c1f1 !important;stroke:#62a0ea !important;stroke-width:1px !important"/><g class="label" style="color:#000000 !important" transform="translate(0, -21.66299819946289)"><rect/><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style="fill:#000000 !important"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">rootfs-dbg</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">(debug</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> symbols</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> of</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> other</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="2.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">recipes'</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> shared</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> libraries)</tspan></tspan></text></g></g></g><g class="node default" id="my-svg-flowchart-rootfs-9" data-look="classic" transform="translate(566.1159717378162, 1136.287483215332)"><polygon points="0,0 141.453125,0 141.453125,-38.66300010681152 0,-38.66300010681152 0,0 -8,0 149.453125,0 149.453125,-38.66300010681152 -8,-38.66300010681152 -8,0" class="label-container" transform="translate(-70.7265625,19.33150005340576)" style="fill:#99c1f1 !important;stroke:#62a0ea !important;stroke-width:1px !important"/><g class="label" style="color:#000000 !important" transform="translate(0, -14.331500053405762)"><rect/><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style="fill:#000000 !important"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">rootfs</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">(target</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> root</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> filesystem)</tspan></tspan></text></g></g></g><g class="node default" id="my-svg-flowchart-appbin-10" data-look="classic" transform="translate(563.8862506684803, 1562.276475906372)"><rect class="basic label-container" style="fill:#99c1f1 !important;stroke:#62a0ea !important;stroke-width:1px !important" x="-80" y="-24.33150005340576" width="160" height="48.66300010681152"/><g class="label" style="color:#000000 !important" transform="translate(0, -14.331500053405762)"><rect/><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style="fill:#000000 !important"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Application</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> binary</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">(running)</tspan></tspan></text></g></g></g><g class="node default" id="my-svg-flowchart-debugserver-11" data-look="classic" transform="translate(517.8862506684803, 1411.6134777069092)"><rect class="basic label-container" style="fill:#99c1f1 !important;stroke:#62a0ea !important;stroke-width:1px !important" x="-80" y="-24.33150005340576" width="160" height="48.66300010681152"/><g class="label" style="color:#000000 !important" transform="translate(0, -14.331500053405762)"><rect/><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style="fill:#000000 !important"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">debug-server</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">(e.g.</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> gdbserver)</tspan></tspan></text></g></g></g></g></g></g><defs><filter id="my-svg-drop-shadow" height="130%" width="130%"><feDropShadow dx="4" dy="4" stdDeviation="0" flood-opacity="0.06" flood-color="#000000"/></filter></defs><defs><filter id="my-svg-drop-shadow-small" height="150%" width="150%"><feDropShadow dx="2" dy="2" stdDeviation="0" flood-opacity="0.06" flood-color="#000000"/></filter></defs><linearGradient id="my-svg-gradient" gradientUnits="objectBoundingBox" x1="0%" y1="0%" x2="100%" y2="0%"><stop offset="0%" stop-color="#62a0ea" stop-opacity="1"/><stop offset="100%" stop-color="hsl(92.7272727273, 35.8620689655%, 67.2549019608%)" stop-opacity="1"/></linearGradient></svg>
\ No newline at end of file
diff --git a/documentation/dev-manual/figures/devtool-ide-sdk-nfs-architecture.mmd b/documentation/dev-manual/figures/devtool-ide-sdk-nfs-architecture.mmd
new file mode 100644
index 000000000..e6141cde5
--- /dev/null
+++ b/documentation/dev-manual/figures/devtool-ide-sdk-nfs-architecture.mmd
@@ -0,0 +1,89 @@ 
+---
+config:
+  theme: base
+  look: classic
+  htmlLabels: false
+  fontFamily: '"Nimbus Sans", Helvetica, Arial, sans-serif'
+  fontSize: 13.33
+  themeVariables:
+    primaryColor: "#99c1f1"
+    primaryBorderColor: "#62a0ea"
+    primaryTextColor: "#000000"
+    lineColor: "#000000"
+    edgeLabelBackground: "#ffffff"
+    clusterBkg: "#f6f5f4"
+    clusterBorder: "#c0bfbc"
+    titleColor: "#000000"
+    fontSize: 13.33px
+  themeCSS: |
+    .cluster-label tspan { font-weight: bold; }
+    rect { rx: 7.5px; ry: 7.5px; }
+  flowchart:
+    htmlLabels: false
+    useMaxWidth: false
+    curve: basis
+    padding: 10
+    nodeSpacing: 23
+    rankSpacing: 37
+    wrappingWidth: 300
+---
+%% Regenerate: npx -y @mermaid-js/mermaid-cli -b transparent -i devtool-ide-sdk-nfs-architecture.mmd -o devtool-ide-sdk-nfs-architecture.svg
+%%   && sed -i 's/<text /<text xml:space="preserve" /g' devtool-ide-sdk-nfs-architecture.svg
+%% (xml:space keeps the spaces between words in rsvg-convert, used for the PDF output)
+flowchart TB
+    idesdk["devtool ide-sdk --nfs=rootfs-dbg<br/>(bitbake tinfoil client)"]
+    ideconfig[["IDE configuration<br/>(e.g. build tool preset,<br/>debugger launch config)"]]
+    ide["IDE (e.g. VSCode)"]
+    srcdir[["S = e.g. workspace/sources/&lt;recipe&gt;<br/>(source code, extracted by<br/>devtool modify, edited in the IDE)"]]
+
+    subgraph sdk["SDK (regular bitbake environment)"]
+        subgraph recipe_workdir["Recipe WORKDIR(s)"]
+            native_sysroot[["recipe-sysroot-native<br/>build tool (e.g. CMake)<br/>cross-compiler (e.g. &lt;arch&gt;-gcc)<br/>debugger (e.g. gdb)"]]
+            builddir[["B (build directory)<br/>build artifacts"]]
+            sysroot[["recipe-sysroot<br/>(target headers & libs)"]]
+            destdir[["D = image<br/>(non-stripped, relocated rpath,<br/>managed by pseudo)"]]
+        end
+
+        subgraph image_workdir["Image WORKDIR"]
+            rootfsdbg_src[["rootfs-dbg<br/>(stripped binaries + debug symbols<br/>of every recipe, combined by<br/>image-combined-dbg)"]]
+        end
+    end
+
+    subgraph nfs["NFS export"]
+        rootfsdbg[["&lt;workspace&gt;/nfs-exports/<br/>&lt;image-recipe&gt;/rootfs-dbg<br/>(copy, kept in sync by<br/>devtool deploy-target;<br/>persists across debug sessions)"]]
+    end
+
+    subgraph target["Target device"]
+        appbin["Application binary<br/>(running)"]
+        debugserver["debug-server<br/>(e.g. gdbserver)"]
+    end
+
+    idesdk -->|generates| ideconfig
+    idesdk -->|"generates the SDK (via bitbake)"| sdk
+    rootfsdbg_src -->|"deployed, extracted<br/>(--nfs=rootfs-dbg)"| rootfsdbg
+    ideconfig --> ide
+    ideconfig --> native_sysroot
+    ide -->|"calls directly, no bitbake needed"| native_sysroot
+    ide -->|"edit source"| srcdir
+    native_sysroot -->|"reads source from"| srcdir
+    native_sysroot -->|"builds in"| builddir
+    native_sysroot -.->|"--sysroot"| sysroot
+    builddir -->|install| destdir
+    destdir -->|"devtool deploy-target<br/>(direct write, no SSH)"| rootfsdbg
+    native_sysroot -->|"debug symbols:<br/>unstripped binary"| destdir
+    native_sysroot -->|"debug symbols:<br/>other recipes'<br/>shared libraries"| rootfsdbg
+    native_sysroot -->|"remote debug<br/>protocol"| debugserver
+    debugserver -->|"attach / run"| appbin
+    target -->|"booted from<br/>(NFS-mounted<br/>root filesystem)"| rootfsdbg
+
+    style sdk fill:#f6f5f4,stroke:#3584e4,stroke-width:1px
+    style recipe_workdir fill:#ffffff,stroke:#62a0ea,stroke-width:1px
+    style image_workdir fill:#ffffff,stroke:#57e389,stroke-width:1px
+    style nfs fill:#f6f5f4,stroke:#c061cb,stroke-width:1px
+    style target fill:#f6f5f4,stroke:#b5835a,stroke-width:1px
+
+    classDef orange fill:#ffbe6f,stroke:#ffa348,stroke-width:1px,color:#000000;
+    classDef green fill:#8ff0a4,stroke:#57e389,stroke-width:1px,color:#000000;
+    classDef default fill:#99c1f1,stroke:#62a0ea,stroke-width:1px,color:#000000;
+    class idesdk orange;
+    class srcdir,rootfsdbg green;
diff --git a/documentation/dev-manual/figures/devtool-ide-sdk-nfs-architecture.svg b/documentation/dev-manual/figures/devtool-ide-sdk-nfs-architecture.svg
new file mode 100644
index 000000000..fa2876a19
--- /dev/null
+++ b/documentation/dev-manual/figures/devtool-ide-sdk-nfs-architecture.svg
@@ -0,0 +1 @@ 
+<svg id="my-svg" width="1323.3128662109375" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="flowchart" height="1621.9339599609375" viewBox="4 3.999998092651367 1323.3128662109375 1621.9339599609375" role="graphics-document document" aria-roledescription="flowchart-v2" style="background-color: transparent;"><style>#my-svg{font-family:"Nimbus Sans",Helvetica,Arial,sans-serif;font-size:13.33px;fill:#000000;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#my-svg .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#my-svg .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#my-svg .error-icon{fill:hsl(32.7272727273, 75.8620689655%, 82.2549019608%);}#my-svg .error-text{fill:rgb(10.9224137931, 42.1293103448, 79.5775862068);stroke:rgb(10.9224137931, 42.1293103448, 79.5775862068);}#my-svg .edge-thickness-normal{stroke-width:1px;}#my-svg .edge-thickness-thick{stroke-width:3.5px;}#my-svg .edge-pattern-solid{stroke-dasharray:0;}#my-svg .edge-thickness-invisible{stroke-width:0;fill:none;}#my-svg .edge-pattern-dashed{stroke-dasharray:3;}#my-svg .edge-pattern-dotted{stroke-dasharray:2;}#my-svg .marker{fill:#000000;stroke:#000000;}#my-svg .marker.cross{stroke:#000000;}#my-svg svg{font-family:"Nimbus Sans",Helvetica,Arial,sans-serif;font-size:13.33px;}#my-svg p{margin:0;}#my-svg .label{font-family:"Nimbus Sans",Helvetica,Arial,sans-serif;color:#000000;}#my-svg .cluster-label text{fill:#000000;}#my-svg .cluster-label span{color:#000000;}#my-svg .cluster-label span p{background-color:transparent;}#my-svg .label text,#my-svg span{fill:#000000;color:#000000;}#my-svg .node rect,#my-svg .node circle,#my-svg .node ellipse,#my-svg .node polygon,#my-svg .node path{fill:#99c1f1;stroke:#62a0ea;stroke-width:1px;}#my-svg .rough-node .label text,#my-svg .node .label text,#my-svg .image-shape .label,#my-svg .icon-shape .label{text-anchor:middle;}#my-svg .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#my-svg .rough-node .label,#my-svg .node .label,#my-svg .image-shape .label,#my-svg .icon-shape .label{text-align:center;}#my-svg .node.clickable{cursor:pointer;}#my-svg .root .anchor path{fill:#000000!important;stroke-width:0;stroke:#000000;}#my-svg .arrowheadPath{fill:#0b0b0b;}#my-svg .edgePaths .path{stroke:#000000;stroke-width:1px;}#my-svg .flowchart-link{stroke:#000000;fill:none;}#my-svg .edgeLabel{background-color:#ffffff;text-align:center;}#my-svg .edgeLabel p{background-color:#ffffff;}#my-svg .edgeLabel rect{opacity:0.5;background-color:#ffffff;fill:#ffffff;}#my-svg .labelBkg{background-color:rgba(255, 255, 255, 0.5);}#my-svg .cluster rect{fill:#f6f5f4;stroke:#c0bfbc;stroke-width:1px;}#my-svg .cluster text{fill:#000000;}#my-svg .cluster span{color:#000000;}#my-svg .node .collapsed-indicator{fill:#c0bfbc;stroke:none;opacity:0.6;}#my-svg .node .collapsed-separator{stroke:#c0bfbc;stroke-width:0.75px;}#my-svg div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"Nimbus Sans",Helvetica,Arial,sans-serif;font-size:12px;background:hsl(32.7272727273, 75.8620689655%, 82.2549019608%);border:1px solid hsl(32.7272727273, 35.8620689655%, 72.2549019608%);border-radius:2px;pointer-events:none;z-index:100;}#my-svg .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#000000;}#my-svg rect.text{fill:none;stroke-width:0;}#my-svg .icon-shape,#my-svg .image-shape{background-color:#ffffff;text-align:center;}#my-svg .icon-shape p,#my-svg .image-shape p{background-color:#ffffff;padding:2px;}#my-svg .icon-shape .label rect,#my-svg .image-shape .label rect{opacity:0.5;background-color:#ffffff;fill:#ffffff;}#my-svg .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#my-svg .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#my-svg .node .neo-node{stroke:#62a0ea;}#my-svg [data-look="neo"].node rect,#my-svg [data-look="neo"].cluster rect,#my-svg [data-look="neo"].node polygon{stroke:url(#my-svg-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#my-svg [data-look="neo"].swimlane.cluster rect{filter:none;}#my-svg [data-look="neo"].node path{stroke:url(#my-svg-gradient);stroke-width:1px;}#my-svg [data-look="neo"].node .outer-path{filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#my-svg [data-look="neo"].node .neo-line path{stroke:#62a0ea;filter:none;}#my-svg [data-look="neo"].node circle{stroke:url(#my-svg-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#my-svg [data-look="neo"].node circle .state-start{fill:#000000;}#my-svg [data-look="neo"].icon-shape .icon{fill:url(#my-svg-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#my-svg [data-look="neo"].icon-shape .icon-neo path{stroke:url(#my-svg-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#my-svg .cluster-label tspan{font-weight:bold;}#my-svg rect{rx:7.5px;ry:7.5px;}#my-svg :root{--mermaid-font-family:"Nimbus Sans",Helvetica,Arial,sans-serif;}#my-svg .orange rect{fill:rgb(255, 190, 111)!important;stroke:rgb(255, 163, 72)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .orange polygon{fill:rgb(255, 190, 111)!important;stroke:rgb(255, 163, 72)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .orange ellipse{fill:rgb(255, 190, 111)!important;stroke:rgb(255, 163, 72)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .orange circle{fill:rgb(255, 190, 111)!important;stroke:rgb(255, 163, 72)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .orange path{fill:rgb(255, 190, 111)!important;stroke:rgb(255, 163, 72)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .orange tspan{fill:rgb(0, 0, 0)!important;}#my-svg .green rect{fill:rgb(143, 240, 164)!important;stroke:rgb(87, 227, 137)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .green polygon{fill:rgb(143, 240, 164)!important;stroke:rgb(87, 227, 137)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .green ellipse{fill:rgb(143, 240, 164)!important;stroke:rgb(87, 227, 137)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .green circle{fill:rgb(143, 240, 164)!important;stroke:rgb(87, 227, 137)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .green path{fill:rgb(143, 240, 164)!important;stroke:rgb(87, 227, 137)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .green tspan{fill:rgb(0, 0, 0)!important;}#my-svg .default rect{fill:rgb(153, 193, 241)!important;stroke:rgb(98, 160, 234)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .default polygon{fill:rgb(153, 193, 241)!important;stroke:rgb(98, 160, 234)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .default ellipse{fill:rgb(153, 193, 241)!important;stroke:rgb(98, 160, 234)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .default circle{fill:rgb(153, 193, 241)!important;stroke:rgb(98, 160, 234)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .default path{fill:rgb(153, 193, 241)!important;stroke:rgb(98, 160, 234)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .default tspan{fill:rgb(0, 0, 0)!important;}</style><g><marker id="my-svg_flowchart-v2-pointEnd" class="marker flowchart-v2" viewBox="0 0 10 10" refX="5" refY="5" markerUnits="userSpaceOnUse" markerWidth="8" markerHeight="8" orient="auto"><path d="M 0 0 L 10 5 L 0 10 z" class="arrowMarkerPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-pointStart" class="marker flowchart-v2" viewBox="0 0 10 10" refX="4.5" refY="5" markerUnits="userSpaceOnUse" markerWidth="8" markerHeight="8" orient="auto"><path d="M 0 5 L 10 10 L 10 0 z" class="arrowMarkerPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-pointEnd-margin" class="marker flowchart-v2" viewBox="0 0 11.5 14" refX="11.5" refY="7" markerUnits="userSpaceOnUse" markerWidth="10.5" markerHeight="14" orient="auto"><path d="M 0 0 L 11.5 7 L 0 14 z" class="arrowMarkerPath" style="stroke-width: 0; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-pointStart-margin" class="marker flowchart-v2" viewBox="0 0 11.5 14" refX="1" refY="7" markerUnits="userSpaceOnUse" markerWidth="11.5" markerHeight="14" orient="auto"><polygon points="0,7 11.5,14 11.5,0" class="arrowMarkerPath" style="stroke-width: 0; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-circleEnd" class="marker flowchart-v2" viewBox="0 0 10 10" refX="11" refY="5" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><circle cx="5" cy="5" r="5" class="arrowMarkerPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-circleStart" class="marker flowchart-v2" viewBox="0 0 10 10" refX="-1" refY="5" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><circle cx="5" cy="5" r="5" class="arrowMarkerPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-circleEnd-margin" class="marker flowchart-v2" viewBox="0 0 10 10" refY="5" refX="12.25" markerUnits="userSpaceOnUse" markerWidth="14" markerHeight="14" orient="auto"><circle cx="5" cy="5" r="5" class="arrowMarkerPath" style="stroke-width: 0; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-circleStart-margin" class="marker flowchart-v2" viewBox="0 0 10 10" refX="-2" refY="5" markerUnits="userSpaceOnUse" markerWidth="14" markerHeight="14" orient="auto"><circle cx="5" cy="5" r="5" class="arrowMarkerPath" style="stroke-width: 0; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-crossEnd" class="marker cross flowchart-v2" viewBox="0 0 11 11" refX="12" refY="5.2" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><path d="M 1,1 l 9,9 M 10,1 l -9,9" class="arrowMarkerPath" style="stroke-width: 2; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-crossStart" class="marker cross flowchart-v2" viewBox="0 0 11 11" refX="-1" refY="5.2" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><path d="M 1,1 l 9,9 M 10,1 l -9,9" class="arrowMarkerPath" style="stroke-width: 2; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-crossEnd-margin" class="marker cross flowchart-v2" viewBox="0 0 15 15" refX="17.7" refY="7.5" markerUnits="userSpaceOnUse" markerWidth="12" markerHeight="12" orient="auto"><path d="M 1,1 L 14,14 M 1,14 L 14,1" class="arrowMarkerPath" style="stroke-width: 2.5;"/></marker><marker id="my-svg_flowchart-v2-crossStart-margin" class="marker cross flowchart-v2" viewBox="0 0 15 15" refX="-3.5" refY="7.5" markerUnits="userSpaceOnUse" markerWidth="12" markerHeight="12" orient="auto"><path d="M 1,1 L 14,14 M 1,14 L 14,1" class="arrowMarkerPath" style="stroke-width: 2.5; stroke-dasharray: 1, 0;"/></marker><g class="root"><g class="clusters"><g class="cluster" id="my-svg-target" data-look="classic"><rect style="fill:#f6f5f4 !important;stroke:#b5835a !important;stroke-width:1px !important" x="446.1582946777344" y="1084.6299858093262" width="208" height="228.32599639892578"/><g class="cluster-label" transform="translate(507.8301696777344, 1084.6299858093262)"><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Target</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> device</tspan></tspan></text></g></g></g><g class="cluster" id="my-svg-nfs" data-look="classic"><rect style="fill:#f6f5f4 !important;stroke:#c061cb !important;stroke-width:1px !important" x="517.1856384277344" y="1470.2819786071777" width="263.625" height="147.6520004272461"/><g class="cluster-label" transform="translate(613.4903259277344, 1470.2819786071777)"><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">NFS</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> export</tspan></tspan></text></g></g></g><g class="cluster" id="my-svg-sdk" data-look="classic"><rect style="fill:#f6f5f4 !important;stroke:#3584e4 !important;stroke-width:1px !important" x="303.8333943684897" y="393.9889945983887" width="1015.4794464111329" height="527.9779968261719"/><g class="cluster-label" transform="translate(701.8387425740561, 393.9889945983887)"><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">SDK</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> (regular</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> bitbake</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> environment)</tspan></tspan></text></g></g></g><g class="cluster" id="my-svg-image_workdir" data-look="classic"><rect style="fill:#ffffff !important;stroke:#57e389 !important;stroke-width:1px !important" x="1014.2469533284507" y="764.9779930114746" width="281.0658874511719" height="132.98899841308594"/><g class="cluster-label" transform="translate(1101.0925877889, 764.9779930114746)"><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Image</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> WORKDIR</tspan></tspan></text></g></g></g><g class="cluster" id="my-svg-recipe_workdir" data-look="classic"><rect style="fill:#ffffff !important;stroke:#62a0ea !important;stroke-width:1px !important" x="327.8333943684896" y="444.9889945983887" width="583.1328125" height="452.9779968261719"/><g class="cluster-label" transform="translate(555.1654256184896, 444.9889945983887)"><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Recipe</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> WORKDIR(s)</tspan></tspan></text></g></g></g></g><g class="edges edgePaths"><path d="M356.96698811848955,60.66299819946289L356.96698811848955,73.59193038759742Q356.96698811848955,80.66299819946289 349.8959203066241,80.66299819946289L288.07321218035503,80.66299819946289Q281.00214436848955,80.66299819946289 281.00214436848955,87.73406601132837L281.00214436848955,154.6629981994629" id="my-svg-L_idesdk_ideconfig_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_idesdk_ideconfig_0" data-points="W3sieCI6MzU2Ljk2Njk4ODExODQ4OTU1LCJ5Ijo2MC42NjI5OTgxOTk0NjI4OX0seyJ4IjozNTYuOTY2OTg4MTE4NDg5NTUsInkiOjgwLjY2Mjk5ODE5OTQ2Mjg5fSx7IngiOjI4MS4wMDIxNDQzNjg0ODk1NSwieSI6ODAuNjYyOTk4MTk5NDYyODl9LHsieCI6MjgxLjAwMjE0NDM2ODQ4OTU1LCJ5IjoxNTguNjYyOTk4MTk5NDYyOX1d" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M426.07636311848955,60.66299819946289L426.07636311848955,73.59193038759742Q426.07636311848955,80.66299819946289 433.14743093035503,80.66299819946289L594.7899307232908,80.66299819946289Q601.8609985351562,80.66299819946289 601.8609985351562,87.73406601132837L601.8609985351562,109.66299819946289L601.8609985351562,268.9889945983887L601.8609985351562,334.9889945983887L601.8609985351562,356.9179267865232Q601.8609985351562,363.9889945983887 594.7899307232908,363.9889945983887L512.3357121803551,363.9889945983887Q505.2646443684896,363.9889945983887 505.2646443684896,371.06006241025415L505.2646443684896,389.9889945983887" id="my-svg-L_idesdk_sdk_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_idesdk_sdk_0" data-points="W3sieCI6NDI2LjA3NjM2MzExODQ4OTU1LCJ5Ijo2MC42NjI5OTgxOTk0NjI4OX0seyJ4Ijo0MjYuMDc2MzYzMTE4NDg5NTUsInkiOjgwLjY2Mjk5ODE5OTQ2Mjg5fSx7IngiOjYwMS44NjA5OTg1MzUxNTYyLCJ5Ijo4MC42NjI5OTgxOTk0NjI4OX0seyJ4Ijo2MDEuODYwOTk4NTM1MTU2MiwieSI6MTA5LjY2Mjk5ODE5OTQ2Mjg5fSx7IngiOjYwMS44NjA5OTg1MzUxNTYyLCJ5IjoyNjguOTg4OTk0NTk4Mzg4N30seyJ4Ijo2MDEuODYwOTk4NTM1MTU2MiwieSI6MzM0Ljk4ODk5NDU5ODM4ODd9LHsieCI6NjAxLjg2MDk5ODUzNTE1NjIsInkiOjM2My45ODg5OTQ1OTgzODg3fSx7IngiOjUwNS4yNjQ2NDQzNjg0ODk2LCJ5IjozNjMuOTg4OTk0NTk4Mzg4N30seyJ4Ijo1MDUuMjY0NjQ0MzY4NDg5NiwieSI6MzkzLjk4ODk5NDU5ODM4ODd9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M1154.7798970540366,873.9669914245605L1154.7798970540366,907.9669914245605L1154.7798970540366,941.9669914245605L1154.7798970540366,954.895923612695Q1154.7798970540366,961.9669914245605 1147.708829242171,961.9669914245605L1102.5658950823733,961.9669914245605Q1095.4948272705078,961.9669914245605 1095.4948272705078,969.0380592364261L1095.4948272705078,1018.2984886169434L1095.4948272705078,1376.6189804077148L1095.4948272705078,1433.2109107953122Q1095.4948272705078,1440.2819786071777 1088.4237594586423,1440.2819786071777L714.2767062396001,1440.2819786071777Q707.2056384277346,1440.2819786071777 707.2056384277346,1447.3530464190433L707.2056384277346,1460.2819786071777L707.2056384277346,1507.2819786071777" id="my-svg-L_rootfsdbg_src_rootfsdbg_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_rootfsdbg_src_rootfsdbg_0" data-points="W3sieCI6MTE1NC43Nzk4OTcwNTQwMzY2LCJ5Ijo4NzMuOTY2OTkxNDI0NTYwNX0seyJ4IjoxMTU0Ljc3OTg5NzA1NDAzNjYsInkiOjkwNy45NjY5OTE0MjQ1NjA1fSx7IngiOjExNTQuNzc5ODk3MDU0MDM2NiwieSI6OTQxLjk2Njk5MTQyNDU2MDV9LHsieCI6MTE1NC43Nzk4OTcwNTQwMzY2LCJ5Ijo5NjEuOTY2OTkxNDI0NTYwNX0seyJ4IjoxMDk1LjQ5NDgyNzI3MDUwNzgsInkiOjk2MS45NjY5OTE0MjQ1NjA1fSx7IngiOjEwOTUuNDk0ODI3MjcwNTA3OCwieSI6MTAxOC4yOTg0ODg2MTY5NDM0fSx7IngiOjEwOTUuNDk0ODI3MjcwNTA3OCwieSI6MTM3Ni42MTg5ODA0MDc3MTQ4fSx7IngiOjEwOTUuNDk0ODI3MjcwNTA3OCwieSI6MTQ0MC4yODE5Nzg2MDcxNzc3fSx7IngiOjcwNy4yMDU2Mzg0Mjc3MzQ2LCJ5IjoxNDQwLjI4MTk3ODYwNzE3Nzd9LHsieCI6NzA3LjIwNTYzODQyNzczNDYsInkiOjE0NjAuMjgxOTc4NjA3MTc3N30seyJ4Ijo3MDcuMjA1NjM4NDI3NzM0NiwieSI6MTUxMS4yODE5Nzg2MDcxNzc3fV0=" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M256.1557902018229,211.98899459838867L256.1557902018229,230.37727584838865Q256.1557902018229,231.98899459838867 254.5440714518229,231.98899459838867L254.5440714518229,231.98899459838867Q252.93235270182288,231.98899459838867 252.93235270182288,233.6007133483887L252.93235270182288,247.98899459838867" id="my-svg-L_ideconfig_ide_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_ideconfig_ide_0" data-points="W3sieCI6MjU2LjE1NTc5MDIwMTgyMjksInkiOjIxMS45ODg5OTQ1OTgzODg2N30seyJ4IjoyNTYuMTU1NzkwMjAxODIyOSwieSI6MjMxLjk4ODk5NDU5ODM4ODY3fSx7IngiOjI1Mi45MzIzNTI3MDE4MjI4OCwieSI6MjMxLjk4ODk5NDU5ODM4ODY3fSx7IngiOjI1Mi45MzIzNTI3MDE4MjI4OCwieSI6MjUxLjk4ODk5NDU5ODM4ODY3fV0=" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M305.84849853515624,211.98899459838867L305.84849853515624,224.9179267865232Q305.84849853515624,231.98899459838867 312.9195663470217,231.98899459838867L486.19357655662407,231.98899459838867Q493.26464436848954,231.98899459838867 493.26464436848954,239.06006241025415L493.26464436848954,268.9889945983887L493.26464436848954,334.9889945983887L493.2646443684896,383.9889945983887L493.2646443684896,434.9889945983887L493.2646443684896,481.9889945983887" id="my-svg-L_ideconfig_native_sysroot_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_ideconfig_native_sysroot_0" data-points="W3sieCI6MzA1Ljg0ODQ5ODUzNTE1NjI0LCJ5IjoyMTEuOTg4OTk0NTk4Mzg4Njd9LHsieCI6MzA1Ljg0ODQ5ODUzNTE1NjI0LCJ5IjoyMzEuOTg4OTk0NTk4Mzg4Njd9LHsieCI6NDkzLjI2NDY0NDM2ODQ4OTU0LCJ5IjoyMzEuOTg4OTk0NTk4Mzg4Njd9LHsieCI6NDkzLjI2NDY0NDM2ODQ4OTU0LCJ5IjoyNjguOTg4OTk0NTk4Mzg4N30seyJ4Ijo0OTMuMjY0NjQ0MzY4NDg5NTQsInkiOjMzNC45ODg5OTQ1OTgzODg3fSx7IngiOjQ5My4yNjQ2NDQzNjg0ODk2LCJ5IjozODMuOTg4OTk0NTk4Mzg4N30seyJ4Ijo0OTMuMjY0NjQ0MzY4NDg5NiwieSI6NDM0Ljk4ODk5NDU5ODM4ODd9LHsieCI6NDkzLjI2NDY0NDM2ODQ4OTYsInkiOjQ4NS45ODg5OTQ1OTgzODg3fV0=" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M276.2656860351562,285.9889945983887L276.2656860351562,298.9179267865232Q276.2656860351562,305.9889945983887 283.33675384702167,305.9889945983887L355.1342015566241,305.9889945983887Q362.20526936848955,305.9889945983887 362.20526936848955,313.06006241025415L362.20526936848955,356.9179267865232Q362.20526936848955,363.9889945983887 369.27633718035503,363.9889945983887L420.87795155662417,363.9889945983887Q427.94901936848964,363.9889945983887 427.94901936848964,371.06006241025415L427.94901936848964,383.9889945983887L427.94901936848964,434.9889945983887L427.9490193684896,481.9889945983887" id="my-svg-L_ide_native_sysroot_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_ide_native_sysroot_0" data-points="W3sieCI6Mjc2LjI2NTY4NjAzNTE1NjIsInkiOjI4NS45ODg5OTQ1OTgzODg3fSx7IngiOjI3Ni4yNjU2ODYwMzUxNTYyLCJ5IjozMDUuOTg4OTk0NTk4Mzg4N30seyJ4IjozNjIuMjA1MjY5MzY4NDg5NTUsInkiOjMwNS45ODg5OTQ1OTgzODg3fSx7IngiOjM2Mi4yMDUyNjkzNjg0ODk1NSwieSI6MzYzLjk4ODk5NDU5ODM4ODd9LHsieCI6NDI3Ljk0OTAxOTM2ODQ4OTY0LCJ5IjozNjMuOTg4OTk0NTk4Mzg4N30seyJ4Ijo0MjcuOTQ5MDE5MzY4NDg5NjQsInkiOjM4My45ODg5OTQ1OTgzODg3fSx7IngiOjQyNy45NDkwMTkzNjg0ODk2NCwieSI6NDM0Ljk4ODk5NDU5ODM4ODd9LHsieCI6NDI3Ljk0OTAxOTM2ODQ4OTYsInkiOjQ4NS45ODg5OTQ1OTgzODg3fV0=" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M229.59901936848954,285.9889945983887L229.59901936848954,298.9179267865232Q229.59901936848954,305.9889945983887 222.52795155662406,305.9889945983887L104.11862437111026,305.9889945983887Q97.04755655924478,305.9889945983887 97.04755655924478,313.06006241025415L97.04755655924478,334.9889945983887L97.04755655924478,1018.2984886169434L97.04755655924478,1080.6299858093262" id="my-svg-L_ide_srcdir_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_ide_srcdir_0" data-points="W3sieCI6MjI5LjU5OTAxOTM2ODQ4OTU0LCJ5IjoyODUuOTg4OTk0NTk4Mzg4N30seyJ4IjoyMjkuNTk5MDE5MzY4NDg5NTQsInkiOjMwNS45ODg5OTQ1OTgzODg3fSx7IngiOjk3LjA0NzU1NjU1OTI0NDc4LCJ5IjozMDUuOTg4OTk0NTk4Mzg4N30seyJ4Ijo5Ny4wNDc1NTY1NTkyNDQ3OCwieSI6MzM0Ljk4ODk5NDU5ODM4ODd9LHsieCI6OTcuMDQ3NTU2NTU5MjQ0NzgsInkiOjEwMTguMjk4NDg4NjE2OTQzNH0seyJ4Ijo5Ny4wNDc1NTY1NTkyNDQ3OCwieSI6MTA4NC42Mjk5ODU4MDkzMjYyfV0=" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M390.62580508277534,553.9779930114746L390.62580508277534,576.9069251996091Q390.62580508277534,583.9779930114746 383.55473727090987,583.9779930114746L375.6854889660694,583.9779930114746Q368.6144211542039,583.9779930114746 368.6144211542039,591.0490608233401L368.6144211542039,907.9669914245605L368.6144211542039,941.9669914245605L368.6144211542039,954.895923612695Q368.6144211542039,961.9669914245605 361.54335334233843,961.9669914245605L179.16618093035504,961.9669914245605Q172.09511311848956,961.9669914245605 172.09511311848956,969.0380592364261L172.09511311848956,1080.6299858093262" id="my-svg-L_native_sysroot_srcdir_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_native_sysroot_srcdir_0" data-points="W3sieCI6MzkwLjYyNTgwNTA4Mjc3NTM0LCJ5Ijo1NTMuOTc3OTkzMDExNDc0Nn0seyJ4IjozOTAuNjI1ODA1MDgyNzc1MzQsInkiOjU4My45Nzc5OTMwMTE0NzQ2fSx7IngiOjM2OC42MTQ0MjExNTQyMDM5LCJ5Ijo1ODMuOTc3OTkzMDExNDc0Nn0seyJ4IjozNjguNjE0NDIxMTU0MjAzOSwieSI6OTA3Ljk2Njk5MTQyNDU2MDV9LHsieCI6MzY4LjYxNDQyMTE1NDIwMzksInkiOjk0MS45NjY5OTE0MjQ1NjA1fSx7IngiOjM2OC42MTQ0MjExNTQyMDM5LCJ5Ijo5NjEuOTY2OTkxNDI0NTYwNX0seyJ4IjoxNzIuMDk1MTEzMTE4NDg5NTYsInkiOjk2MS45NjY5OTE0MjQ1NjA1fSx7IngiOjE3Mi4wOTUxMTMxMTg0ODk1NiwieSI6MTA4NC42Mjk5ODU4MDkzMjYyfV0=" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M474.6030372256325,553.9779930114746L474.6030372256325,600.9069251996091Q474.6030372256325,607.9779930114746 481.67410503749795,607.9779930114746L496.53576405662415,607.9779930114746Q503.6068318684896,607.9779930114746 503.6068318684896,615.0490608233401L503.6068318684896,675.9779930114746" id="my-svg-L_native_sysroot_builddir_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_native_sysroot_builddir_0" data-points="W3sieCI6NDc0LjYwMzAzNzIyNTYzMjUsInkiOjU1My45Nzc5OTMwMTE0NzQ2fSx7IngiOjQ3NC42MDMwMzcyMjU2MzI1LCJ5Ijo2MDcuOTc3OTkzMDExNDc0Nn0seyJ4Ijo1MDMuNjA2ODMxODY4NDg5NiwieSI6NjA3Ljk3Nzk5MzAxMTQ3NDZ9LHsieCI6NTAzLjYwNjgzMTg2ODQ4OTYsInkiOjY3OS45Nzc5OTMwMTE0NzQ2fV0=" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M502.5954479399182,553.9779930114746L502.5954479399182,588.9069251996091Q502.5954479399182,595.9779930114746 509.66651575178366,595.9779930114746L697.9654515566242,595.9779930114746Q705.0365193684896,595.9779930114746 705.0365193684896,603.0490608233401L705.0365193684896,675.9779930114746" id="my-svg-L_native_sysroot_sysroot_0" class="edge-thickness-normal edge-pattern-dotted edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_native_sysroot_sysroot_0" data-points="W3sieCI6NTAyLjU5NTQ0NzkzOTkxODIsInkiOjU1My45Nzc5OTMwMTE0NzQ2fSx7IngiOjUwMi41OTU0NDc5Mzk5MTgyLCJ5Ijo1OTUuOTc3OTkzMDExNDc0Nn0seyJ4Ijo3MDUuMDM2NTE5MzY4NDg5NiwieSI6NTk1Ljk3Nzk5MzAxMTQ3NDZ9LHsieCI6NzA1LjAzNjUxOTM2ODQ4OTYsInkiOjY3OS45Nzc5OTMwMTE0NzQ2fV0=" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M503.6068318684896,718.6409765896788L503.6068318684896,718.6409950256348L503.6068318684896,783.5699272137692Q503.6068318684896,790.6409950256348 510.6778996803551,790.6409950256348L657.8675348899574,790.6409950256348Q664.9386027018229,790.6409950256348 664.9386027018229,797.7120628375003L664.9386027018229,816.6409950256348" id="my-svg-L_builddir_destdir_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_builddir_destdir_0" data-points="W3sieCI6NTAzLjYwNjgzMTg2ODQ4OTYsInkiOjcxOC42NDA5NzY1ODk2Nzg4fSx7IngiOjUwMy42MDY4MzE4Njg0ODk2LCJ5Ijo3MTguNjQwOTk1MDI1NjM0OH0seyJ4Ijo1MDMuNjA2ODMxODY4NDg5NiwieSI6NzkwLjY0MDk5NTAyNTYzNDh9LHsieCI6NjY0LjkzODYwMjcwMTgyMjksInkiOjc5MC42NDA5OTUwMjU2MzQ4fSx7IngiOjY2NC45Mzg2MDI3MDE4MjI5LCJ5Ijo4MjAuNjQwOTk1MDI1NjM0OH1d" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M695.2865193684896,873.9669914245605L695.2865193684896,907.9669914245605L695.2865193684896,941.9669914245605L695.2865193684896,954.895923612695Q695.2865193684896,961.9669914245605 702.357587180355,961.9669914245605L786.4270706158688,961.9669914245605Q793.4981384277344,961.9669914245605 793.4981384277344,969.0380592364261L793.4981384277344,1018.2984886169434L793.4981384277344,1376.6189804077148L793.4981384277344,1413.2109107953122Q793.4981384277344,1420.2819786071777 786.4270706158688,1420.2819786071777L675.4717062395998,1420.2819786071777Q668.4006384277344,1420.2819786071777 668.4006384277344,1427.3530464190433L668.4006384277344,1460.2819786071777L668.4006384277345,1507.2819786071777" id="my-svg-L_destdir_rootfsdbg_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_destdir_rootfsdbg_0" data-points="W3sieCI6Njk1LjI4NjUxOTM2ODQ4OTYsInkiOjg3My45NjY5OTE0MjQ1NjA1fSx7IngiOjY5NS4yODY1MTkzNjg0ODk2LCJ5Ijo5MDcuOTY2OTkxNDI0NTYwNX0seyJ4Ijo2OTUuMjg2NTE5MzY4NDg5NiwieSI6OTQxLjk2Njk5MTQyNDU2MDV9LHsieCI6Njk1LjI4NjUxOTM2ODQ4OTYsInkiOjk2MS45NjY5OTE0MjQ1NjA1fSx7IngiOjc5My40OTgxMzg0Mjc3MzQ0LCJ5Ijo5NjEuOTY2OTkxNDI0NTYwNX0seyJ4Ijo3OTMuNDk4MTM4NDI3NzM0NCwieSI6MTAxOC4yOTg0ODg2MTY5NDM0fSx7IngiOjc5My40OTgxMzg0Mjc3MzQ0LCJ5IjoxMzc2LjYxODk4MDQwNzcxNDh9LHsieCI6NzkzLjQ5ODEzODQyNzczNDQsInkiOjE0MjAuMjgxOTc4NjA3MTc3N30seyJ4Ijo2NjguNDAwNjM4NDI3NzM0NCwieSI6MTQyMC4yODE5Nzg2MDcxNzc3fSx7IngiOjY2OC40MDA2Mzg0Mjc3MzQ0LCJ5IjoxNDYwLjI4MTk3ODYwNzE3Nzd9LHsieCI6NjY4LjQwMDYzODQyNzczNDUsInkiOjE1MTEuMjgxOTc4NjA3MTc3N31d" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M530.587858654204,553.9779930114746L530.587858654204,576.9069251996091Q530.587858654204,583.9779930114746 537.6589264660695,583.9779930114746L879.8951390566242,583.9779930114746Q886.9662068684896,583.9779930114746 886.9662068684896,591.0490608233401L886.9662068684896,783.5699272137692Q886.9662068684896,790.6409950256348 879.8951390566242,790.6409950256348L732.7055038470219,790.6409950256348Q725.6344360351563,790.6409950256348 725.6344360351563,797.7120628375003L725.6344360351563,816.6409950256348" id="my-svg-L_native_sysroot_destdir_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_native_sysroot_destdir_0" data-points="W3sieCI6NTMwLjU4Nzg1ODY1NDIwNCwieSI6NTUzLjk3Nzk5MzAxMTQ3NDZ9LHsieCI6NTMwLjU4Nzg1ODY1NDIwNCwieSI6NTgzLjk3Nzk5MzAxMTQ3NDZ9LHsieCI6ODg2Ljk2NjIwNjg2ODQ4OTYsInkiOjU4My45Nzc5OTMwMTE0NzQ2fSx7IngiOjg4Ni45NjYyMDY4Njg0ODk2LCJ5Ijo3OTAuNjQwOTk1MDI1NjM0OH0seyJ4Ijo3MjUuNjM0NDM2MDM1MTU2MywieSI6NzkwLjY0MDk5NTAyNTYzNDh9LHsieCI6NzI1LjYzNDQzNjAzNTE1NjMsInkiOjgyMC42NDA5OTUwMjU2MzQ4fV0=" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M418.61821579706105,553.9779930114746L418.61821579706105,588.9069251996091Q418.61821579706105,595.9779930114746 411.5471479851956,595.9779930114746L400.1816943232123,595.9779930114746Q393.1106265113468,595.9779930114746 393.1106265113468,603.0490608233401L393.1106265113468,907.9669914245605L393.1106265113468,941.9669914245605L393.1106265113468,974.895923612695Q393.1106265113468,981.9669914245605 386.03955869948135,981.9669914245605L353.21373748959985,981.9669914245605Q346.1426696777344,981.9669914245605 346.1426696777344,989.0380592364261L346.1426696777344,1018.2984886169434L346.1426696777344,1376.6189804077148L346.1426696777344,1433.2109107953122Q346.1426696777344,1440.2819786071777 353.21373748959985,1440.2819786071777L583.7195706158689,1440.2819786071777Q590.7906384277344,1440.2819786071777 590.7906384277344,1447.3530464190433L590.7906384277345,1460.2819786071777L590.7906384277345,1507.2819786071777" id="my-svg-L_native_sysroot_rootfsdbg_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_native_sysroot_rootfsdbg_0" data-points="W3sieCI6NDE4LjYxODIxNTc5NzA2MTA1LCJ5Ijo1NTMuOTc3OTkzMDExNDc0Nn0seyJ4Ijo0MTguNjE4MjE1Nzk3MDYxMDUsInkiOjU5NS45Nzc5OTMwMTE0NzQ2fSx7IngiOjM5My4xMTA2MjY1MTEzNDY4LCJ5Ijo1OTUuOTc3OTkzMDExNDc0Nn0seyJ4IjozOTMuMTEwNjI2NTExMzQ2OCwieSI6OTA3Ljk2Njk5MTQyNDU2MDV9LHsieCI6MzkzLjExMDYyNjUxMTM0NjgsInkiOjk0MS45NjY5OTE0MjQ1NjA1fSx7IngiOjM5My4xMTA2MjY1MTEzNDY4LCJ5Ijo5ODEuOTY2OTkxNDI0NTYwNX0seyJ4IjozNDYuMTQyNjY5Njc3NzM0NCwieSI6OTgxLjk2Njk5MTQyNDU2MDV9LHsieCI6MzQ2LjE0MjY2OTY3NzczNDQsInkiOjEwMTguMjk4NDg4NjE2OTQzNH0seyJ4IjozNDYuMTQyNjY5Njc3NzM0NCwieSI6MTM3Ni42MTg5ODA0MDc3MTQ4fSx7IngiOjM0Ni4xNDI2Njk2Nzc3MzQ0LCJ5IjoxNDQwLjI4MTk3ODYwNzE3Nzd9LHsieCI6NTkwLjc5MDYzODQyNzczNDQsInkiOjE0NDAuMjgxOTc4NjA3MTc3N30seyJ4Ijo1OTAuNzkwNjM4NDI3NzM0NSwieSI6MTQ2MC4yODE5Nzg2MDcxNzc3fSx7IngiOjU5MC43OTA2Mzg0Mjc3MzQ1LCJ5IjoxNTExLjI4MTk3ODYwNzE3Nzd9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M446.61062651134677,553.9779930114746L446.61062651134677,600.9069251996091Q446.61062651134677,607.9779930114746 439.5395586994813,607.9779930114746L424.6778996803551,607.9779930114746Q417.6068318684896,607.9779930114746 417.6068318684896,615.0490608233401L417.6068318684896,907.9669914245605L417.6068318684896,941.9669914245605L417.6068318684896,954.895923612695Q417.6068318684896,961.9669914245605 424.6778996803551,961.9669914245605L543.0872268658688,961.9669914245605Q550.1582946777344,961.9669914245605 550.1582946777344,969.0380592364261L550.1582946777344,1074.6299858093262L550.1582946777344,1121.6299858093262" id="my-svg-L_native_sysroot_debugserver_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_native_sysroot_debugserver_0" data-points="W3sieCI6NDQ2LjYxMDYyNjUxMTM0Njc3LCJ5Ijo1NTMuOTc3OTkzMDExNDc0Nn0seyJ4Ijo0NDYuNjEwNjI2NTExMzQ2NzcsInkiOjYwNy45Nzc5OTMwMTE0NzQ2fSx7IngiOjQxNy42MDY4MzE4Njg0ODk2LCJ5Ijo2MDcuOTc3OTkzMDExNDc0Nn0seyJ4Ijo0MTcuNjA2ODMxODY4NDg5NiwieSI6OTA3Ljk2Njk5MTQyNDU2MDV9LHsieCI6NDE3LjYwNjgzMTg2ODQ4OTYsInkiOjk0MS45NjY5OTE0MjQ1NjA1fSx7IngiOjQxNy42MDY4MzE4Njg0ODk2LCJ5Ijo5NjEuOTY2OTkxNDI0NTYwNX0seyJ4Ijo1NTAuMTU4Mjk0Njc3NzM0NCwieSI6OTYxLjk2Njk5MTQyNDU2MDV9LHsieCI6NTUwLjE1ODI5NDY3NzczNDQsInkiOjEwNzQuNjI5OTg1ODA5MzI2Mn0seyJ4Ijo1NTAuMTU4Mjk0Njc3NzM0NCwieSI6MTEyNS42Mjk5ODU4MDkzMjYyfV0=" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M550.1582946777344,1174.292984008789L550.1582946777344,1236.292984008789" id="my-svg-L_debugserver_appbin_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_debugserver_appbin_0" data-points="W3sieCI6NTUwLjE1ODI5NDY3NzczNDQsInkiOjExNzQuMjkyOTg0MDA4Nzg5fSx7IngiOjU1MC4xNTgyOTQ2Nzc3MzQ0LCJ5IjoxMjQwLjI5Mjk4NDAwODc4OX1d" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M470.1582946777344,1312.955982208252L470.1582946777344,1413.2109107953122Q470.1582946777344,1420.2819786071777 477.22936248959985,1420.2819786071777L622.5245706158689,1420.2819786071777Q629.5956384277345,1420.2819786071777 629.5956384277345,1427.3530464190433L629.5956384277345,1460.2819786071777L629.5956384277345,1507.2819786071777" id="my-svg-L_target_rootfsdbg_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_target_rootfsdbg_0" data-points="W3sieCI6NDcwLjE1ODI5NDY3NzczNDQsInkiOjEzMTIuOTU1OTgyMjA4MjUyfSx7IngiOjQ3MC4xNTgyOTQ2Nzc3MzQ0LCJ5IjoxNDIwLjI4MTk3ODYwNzE3Nzd9LHsieCI6NjI5LjU5NTYzODQyNzczNDUsInkiOjE0MjAuMjgxOTc4NjA3MTc3N30seyJ4Ijo2MjkuNTk1NjM4NDI3NzM0NSwieSI6MTQ2MC4yODE5Nzg2MDcxNzc3fSx7IngiOjYyOS41OTU2Mzg0Mjc3MzQ1LCJ5IjoxNTExLjI4MTk3ODYwNzE3Nzd9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/></g><g class="edgeLabels"><g class="edgeLabel" transform="translate(280.55184987386065, 109.66299819946289)"><g class="label" data-id="L_idesdk_ideconfig_0" transform="translate(-0.16689300537109375, -10.329999923706055)"><g><rect class="background" style="" x="-31.3828125" y="1.3299999237060547" width="63.09941101074219" height="18"/><text xml:space="preserve" y="-10.1" text-anchor="middle" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">generates</tspan></tspan></text></g></g></g><g class="edgeLabel" transform="translate(601.3922485351562, 185.32599639892578)"><g class="label" data-id="L_idesdk_sdk_0" transform="translate(0, -10.329999923706055)"><g><rect class="background" style="" x="-96.03125" y="1.3299999237060547" width="192.0625" height="18"/><text xml:space="preserve" y="-10.1" text-anchor="middle" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">generates</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> the</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> SDK</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> (via</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> bitbake)</tspan></tspan></text></g></g></g><g class="edgeLabel" transform="translate(1095.4557647705078, 1193.792984008789)"><g class="label" data-id="L_rootfsdbg_src_rootfsdbg_0" transform="translate(0, -17.661499977111816)"><g><rect class="background" style="" x="-59.4609375" y="1.3299999237060547" width="118.921875" height="32.66300010681152"/><text xml:space="preserve" y="-10.1" text-anchor="middle" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">deployed,</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> extracted</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">(--nfs=rootfs-dbg)</tspan></tspan></text></g></g></g><g class="edgeLabel" transform="translate(361.93183186848955, 334.9889945983887)"><g class="label" data-id="L_ide_native_sysroot_0" transform="translate(0, -10.329999923706055)"><g><rect class="background" style="" x="-96.2265625" y="1.3299999237060547" width="192.453125" height="18"/><text xml:space="preserve" y="-10.1" text-anchor="middle" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">calls</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> directly,</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> no</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> bitbake</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> needed</tspan></tspan></text></g></g></g><g class="edgeLabel" transform="translate(97.04755655924478, 662.9779930114746)"><g class="label" data-id="L_ide_srcdir_0" transform="translate(0, -10.329999923706055)"><g><rect class="background" style="" x="-34.6171875" y="1.3299999237060547" width="69.234375" height="18"/><text xml:space="preserve" y="-10.1" text-anchor="middle" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">edit</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> source</tspan></tspan></text></g></g></g><g class="edgeLabel" transform="translate(172.09511311848956, 1018.2984886169434)"><g class="label" data-id="L_native_sysroot_srcdir_0" transform="translate(0, -10.329999923706055)"><g><rect class="background" style="" x="-55.5703125" y="1.3299999237060547" width="111.140625" height="18"/><text xml:space="preserve" y="-10.1" text-anchor="middle" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">reads</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> source</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> from</tspan></tspan></text></g></g></g><g class="edgeLabel" transform="translate(503.5599568684896, 646.9779930114746)"><g class="label" data-id="L_native_sysroot_builddir_0" transform="translate(0, -10.329999923706055)"><g><rect class="background" style="" x="-26.453125" y="1.3299999237060547" width="52.90625" height="18"/><text xml:space="preserve" y="-10.1" text-anchor="middle" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">builds</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> in</tspan></tspan></text></g></g></g><g class="edgeLabel" transform="translate(704.7671025594076, 646.9779930114746)"><g class="label" data-id="L_native_sysroot_sysroot_0" transform="translate(-0.14464569091796875, -10.329999923706055)"><g><rect class="background" style="" x="-27.5859375" y="1.3299999237060547" width="55.46116638183594" height="18"/><text xml:space="preserve" y="-10.1" text-anchor="middle" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">--sysroot</tspan></tspan></text></g></g></g><g class="edgeLabel" transform="translate(503.12737019856775, 751.6409950256348)"><g class="label" data-id="L_builddir_destdir_0" transform="translate(-0.020538330078125, -10.329999923706055)"><g><rect class="background" style="" x="-19" y="1.3299999237060547" width="38.04107666015625" height="18"/><text xml:space="preserve" y="-10.1" text-anchor="middle" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">install</tspan></tspan></text></g></g></g><g class="edgeLabel" transform="translate(793.4981384277344, 1193.792984008789)"><g class="label" data-id="L_destdir_rootfsdbg_0" transform="translate(0, -17.661499977111816)"><g><rect class="background" style="" x="-65" y="1.3299999237060547" width="130" height="32.66300010681152"/><text xml:space="preserve" y="-10.1" text-anchor="middle" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">devtool</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> deploy-target</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">(direct</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> write,</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> no</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> SSH)</tspan></tspan></text></g></g></g><g class="edgeLabel" transform="translate(886.8565800984701, 699.3094940185547)"><g class="label" data-id="L_native_sysroot_destdir_0" transform="translate(-0.16381072998046875, -17.661499977111816)"><g><rect class="background" style="" x="-53.2265625" y="1.3299999237060547" width="106.78074645996094" height="32.66300010681152"/><text xml:space="preserve" y="-10.1" text-anchor="middle" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">debug</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> symbols:</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">unstripped</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> binary</tspan></tspan></text></g></g></g><g class="edgeLabel" transform="translate(345.6504821777344, 1193.792984008789)"><g class="label" data-id="L_native_sysroot_rootfsdbg_0" transform="translate(0, -24.992998123168945)"><g><rect class="background" style="" x="-48.5078125" y="1.3299999237060547" width="97.015625" height="47.32599639892578"/><text xml:space="preserve" y="-10.1" text-anchor="middle" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">debug</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> symbols:</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">other</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> recipes'</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="2.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">shared</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> libraries</tspan></tspan></text></g></g></g><g class="edgeLabel" transform="translate(550.0801696777344, 1018.2984886169434)"><g class="label" data-id="L_native_sysroot_debugserver_0" transform="translate(0, -17.661499977111816)"><g><rect class="background" style="" x="-42.921875" y="1.3299999237060547" width="85.84375" height="32.66300010681152"/><text xml:space="preserve" y="-10.1" text-anchor="middle" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">remote</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> debug</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">protocol</tspan></tspan></text></g></g></g><g class="edgeLabel" transform="translate(550.0801696777344, 1207.292984008789)"><g class="label" data-id="L_debugserver_appbin_0" transform="translate(0, -10.329999923706055)"><g><rect class="background" style="" x="-35.421875" y="1.3299999237060547" width="70.84375" height="18"/><text xml:space="preserve" y="-10.1" text-anchor="middle" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">attach</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> /</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> run</tspan></tspan></text></g></g></g><g class="edgeLabel" transform="translate(469.8926696777344, 1376.6189804077148)"><g class="label" data-id="L_target_rootfsdbg_0" transform="translate(0, -24.992998123168945)"><g><rect class="background" style="" x="-46.734375" y="1.3299999237060547" width="93.46875" height="47.32599639892578"/><text xml:space="preserve" y="-10.1" text-anchor="middle" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">booted</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> from</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">(NFS-mounted</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="2.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">root</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> filesystem)</tspan></tspan></text></g></g></g></g><g class="nodes"><g class="node default orange" id="my-svg-flowchart-idesdk-0" data-look="classic" transform="translate(391.52167561848955, 36.331499099731445)"><rect class="basic label-container" style="fill:#ffbe6f !important;stroke:#ffa348 !important;stroke-width:1px !important" x="-113.6640625" y="-24.33150005340576" width="227.328125" height="48.66300010681152"/><g class="label" style="color:#000000 !important" transform="translate(0, -14.331500053405762)"><rect/><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style="fill:#000000 !important"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">devtool</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> ide-sdk</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> --nfs=rootfs-dbg</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">(bitbake</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> tinfoil</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> client)</tspan></tspan></text></g></g></g><g class="node default" id="my-svg-flowchart-ideconfig-1" data-look="classic" transform="translate(281.00214436848955, 185.32599639892578)"><polygon points="0,0 153.078125,0 153.078125,-53.32599639892578 0,-53.32599639892578 0,0 -8,0 161.078125,0 161.078125,-53.32599639892578 -8,-53.32599639892578 -8,0" class="label-container" transform="translate(-76.5390625,26.66299819946289)" style="fill:#99c1f1 !important;stroke:#62a0ea !important;stroke-width:1px !important"/><g class="label" style="color:#000000 !important" transform="translate(0, -21.66299819946289)"><rect/><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style="fill:#000000 !important"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">IDE</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> configuration</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">(e.g.</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> build</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> tool</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> preset,</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="2.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">debugger</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> launch</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> config)</tspan></tspan></text></g></g></g><g class="node default" id="my-svg-flowchart-ide-2" data-look="classic" transform="translate(252.93235270182288, 268.9889945983887)"><rect class="basic label-container" style="fill:#99c1f1 !important;stroke:#62a0ea !important;stroke-width:1px !important" x="-80" y="-17" width="160" height="34"/><g class="label" style="color:#000000 !important" transform="translate(0, -7)"><rect/><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style="fill:#000000 !important"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">IDE</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> (e.g.</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> VSCode)</tspan></tspan></text></g></g></g><g class="node default green" id="my-svg-flowchart-srcdir-3" data-look="classic" transform="translate(134.5713348388672, 1111.292984008789)"><polygon points="0,0 229.14266967773438,0 229.14266967773438,-53.32599639892578 0,-53.32599639892578 0,0 -8,0 237.14266967773438,0 237.14266967773438,-53.32599639892578 -8,-53.32599639892578 -8,0" class="label-container" transform="translate(-114.57133483886719,26.66299819946289)" style="fill:#8ff0a4 !important;stroke:#57e389 !important;stroke-width:1px !important"/><g class="label" style="color:#000000 !important" transform="translate(0, -21.66299819946289)"><rect/><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style="fill:#000000 !important"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">S</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> =</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> e.g.</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> workspace/sources/&lt;recipe&gt;</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">(source</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> code,</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> extracted</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> by</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="2.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">devtool</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> modify,</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> edited</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> in</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> the</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> IDE)</tspan></tspan></text></g></g></g><g class="node default" id="my-svg-flowchart-native_sysroot-4" data-look="classic" transform="translate(460.6068318684896, 519.9834938049316)"><polygon points="0,0 201.546875,0 201.546875,-67.98899841308594 0,-67.98899841308594 0,0 -8,0 209.546875,0 209.546875,-67.98899841308594 -8,-67.98899841308594 -8,0" class="label-container" transform="translate(-100.7734375,33.99449920654297)" style="fill:#99c1f1 !important;stroke:#62a0ea !important;stroke-width:1px !important"/><g class="label" style="color:#000000 !important" transform="translate(0, -28.99449920654297)"><rect/><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style="fill:#000000 !important"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">recipe-sysroot-native</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">build</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> tool</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> (e.g.</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> CMake)</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="2.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">cross-compiler</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> (e.g.</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> &lt;arch&gt;-gcc)</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="3.2em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">debugger</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> (e.g.</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> gdb)</tspan></tspan></text></g></g></g><g class="node default" id="my-svg-flowchart-builddir-5" data-look="classic" transform="translate(503.6068318684896, 699.3094940185547)"><polygon points="0,0 130,0 130,-38.66300010681152 0,-38.66300010681152 0,0 -8,0 138,0 138,-38.66300010681152 -8,-38.66300010681152 -8,0" class="label-container" transform="translate(-65,19.33150005340576)" style="fill:#99c1f1 !important;stroke:#62a0ea !important;stroke-width:1px !important"/><g class="label" style="color:#000000 !important" transform="translate(0, -14.331500053405762)"><rect/><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style="fill:#000000 !important"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">B</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> (build</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> directory)</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">build</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> artifacts</tspan></tspan></text></g></g></g><g class="node default" id="my-svg-flowchart-sysroot-6" data-look="classic" transform="translate(705.0365193684896, 699.3094940185547)"><polygon points="0,0 140.859375,0 140.859375,-38.66300010681152 0,-38.66300010681152 0,0 -8,0 148.859375,0 148.859375,-38.66300010681152 -8,-38.66300010681152 -8,0" class="label-container" transform="translate(-70.4296875,19.33150005340576)" style="fill:#99c1f1 !important;stroke:#62a0ea !important;stroke-width:1px !important"/><g class="label" style="color:#000000 !important" transform="translate(0, -14.331500053405762)"><rect/><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style="fill:#000000 !important"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">recipe-sysroot</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">(target</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> headers</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> &amp;</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> libs)</tspan></tspan></text></g></g></g><g class="node default" id="my-svg-flowchart-destdir-7" data-look="classic" transform="translate(695.2865193684896, 847.3039932250977)"><polygon points="0,0 187.6875,0 187.6875,-53.32599639892578 0,-53.32599639892578 0,0 -8,0 195.6875,0 195.6875,-53.32599639892578 -8,-53.32599639892578 -8,0" class="label-container" transform="translate(-93.84375,26.66299819946289)" style="fill:#99c1f1 !important;stroke:#62a0ea !important;stroke-width:1px !important"/><g class="label" style="color:#000000 !important" transform="translate(0, -21.66299819946289)"><rect/><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style="fill:#000000 !important"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">D</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> =</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> image</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">(non-stripped,</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> relocated</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> rpath,</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="2.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">managed</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> by</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> pseudo)</tspan></tspan></text></g></g></g><g class="node default" id="my-svg-flowchart-rootfsdbg_src-8" data-look="classic" transform="translate(1154.7798970540366, 839.9724922180176)"><polygon points="0,0 217.06588745117188,0 217.06588745117188,-67.98899841308594 0,-67.98899841308594 0,0 -8,0 225.06588745117188,0 225.06588745117188,-67.98899841308594 -8,-67.98899841308594 -8,0" class="label-container" transform="translate(-108.53294372558594,33.99449920654297)" style="fill:#99c1f1 !important;stroke:#62a0ea !important;stroke-width:1px !important"/><g class="label" style="color:#000000 !important" transform="translate(0, -28.99449920654297)"><rect/><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style="fill:#000000 !important"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">rootfs-dbg</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">(stripped</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> binaries</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> +</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> debug</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> symbols</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="2.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">of</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> every</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> recipe,</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> combined</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> by</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="3.2em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">image-combined-dbg)</tspan></tspan></text></g></g></g><g class="node default green" id="my-svg-flowchart-rootfsdbg-9" data-look="classic" transform="translate(648.9981384277344, 1552.6079788208008)"><polygon points="0,0 199.625,0 199.625,-82.6520004272461 0,-82.6520004272461 0,0 -8,0 207.625,0 207.625,-82.6520004272461 -8,-82.6520004272461 -8,0" class="label-container" transform="translate(-99.8125,41.32600021362305)" style="fill:#8ff0a4 !important;stroke:#57e389 !important;stroke-width:1px !important"/><g class="label" style="color:#000000 !important" transform="translate(0, -36.32600021362305)"><rect/><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style="fill:#000000 !important"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">&lt;workspace&gt;/nfs-exports/</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">&lt;image-recipe&gt;/rootfs-dbg</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="2.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">(copy,</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> kept</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> in</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> sync</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> by</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="3.2em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">devtool</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> deploy-target;</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="4.300000000000001em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">persists</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> across</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> debug</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> sessions)</tspan></tspan></text></g></g></g><g class="node default" id="my-svg-flowchart-appbin-10" data-look="classic" transform="translate(550.1582946777344, 1264.6244831085205)"><rect class="basic label-container" style="fill:#99c1f1 !important;stroke:#62a0ea !important;stroke-width:1px !important" x="-80" y="-24.33150005340576" width="160" height="48.66300010681152"/><g class="label" style="color:#000000 !important" transform="translate(0, -14.331500053405762)"><rect/><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style="fill:#000000 !important"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Application</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> binary</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">(running)</tspan></tspan></text></g></g></g><g class="node default" id="my-svg-flowchart-debugserver-11" data-look="classic" transform="translate(550.1582946777344, 1149.9614849090576)"><rect class="basic label-container" style="fill:#99c1f1 !important;stroke:#62a0ea !important;stroke-width:1px !important" x="-80" y="-24.33150005340576" width="160" height="48.66300010681152"/><g class="label" style="color:#000000 !important" transform="translate(0, -14.331500053405762)"><rect/><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style="fill:#000000 !important"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">debug-server</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">(e.g.</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> gdbserver)</tspan></tspan></text></g></g></g></g></g></g><defs><filter id="my-svg-drop-shadow" height="130%" width="130%"><feDropShadow dx="4" dy="4" stdDeviation="0" flood-opacity="0.06" flood-color="#000000"/></filter></defs><defs><filter id="my-svg-drop-shadow-small" height="150%" width="150%"><feDropShadow dx="2" dy="2" stdDeviation="0" flood-opacity="0.06" flood-color="#000000"/></filter></defs><linearGradient id="my-svg-gradient" gradientUnits="objectBoundingBox" x1="0%" y1="0%" x2="100%" y2="0%"><stop offset="0%" stop-color="#62a0ea" stop-opacity="1"/><stop offset="100%" stop-color="hsl(92.7272727273, 35.8620689655%, 67.2549019608%)" stop-opacity="1"/></linearGradient></svg>
\ No newline at end of file
diff --git a/documentation/dev-manual/figures/devtool-ide-sdk-workflow.mmd b/documentation/dev-manual/figures/devtool-ide-sdk-workflow.mmd
new file mode 100644
index 000000000..b0a9c732c
--- /dev/null
+++ b/documentation/dev-manual/figures/devtool-ide-sdk-workflow.mmd
@@ -0,0 +1,76 @@ 
+---
+config:
+  theme: base
+  look: classic
+  htmlLabels: false
+  fontFamily: '"Nimbus Sans", Helvetica, Arial, sans-serif'
+  fontSize: 13.33
+  themeVariables:
+    primaryColor: "#99c1f1"
+    primaryBorderColor: "#62a0ea"
+    primaryTextColor: "#000000"
+    lineColor: "#000000"
+    edgeLabelBackground: "#ffffff"
+    clusterBkg: "#f6f5f4"
+    clusterBorder: "#c0bfbc"
+    titleColor: "#000000"
+    fontSize: 13.33px
+  themeCSS: |
+    .cluster-label tspan { font-weight: bold; }
+    rect { rx: 7.5px; ry: 7.5px; }
+  flowchart:
+    htmlLabels: false
+    useMaxWidth: false
+    curve: basis
+    padding: 10
+    nodeSpacing: 23
+    rankSpacing: 37
+    wrappingWidth: 270
+---
+%% Regenerate: npx -y @mermaid-js/mermaid-cli -b transparent -i devtool-ide-sdk-workflow.mmd -o devtool-ide-sdk-workflow.svg
+%%   && sed -i 's/<text /<text xml:space="preserve" /g' devtool-ide-sdk-workflow.svg
+%% (xml:space keeps the spaces between words in rsvg-convert, used for the PDF output)
+flowchart TB
+    modify["devtool modify recipe --debug-build"]
+
+    subgraph workspace["devtool workspace"]
+        ws_appends[["appends/recipe.bbappend"]]
+        ws_src[["sources/recipe<br/>(extracted here)"]]
+    end
+
+    gensdk["devtool ide-sdk recipe image<br/>(generate SDK + IDE config)"]
+
+    subgraph loop["Edit/build/debug loop"]
+        edit["Edit source code"]
+        build["Build<br/>(build tool called<br/>directly by the IDE)"]
+        deploy["Deploy to target"]
+        debug["Debug remotely<br/>(e.g. GDB/LLDB + gdbserver/lldb-server)"]
+    end
+
+    finish["devtool finish recipe layer<br/>(turn changes into patches)"]
+    rerun_note>"rerun only if recipe<br/>deps/config change"]
+
+    modify --> ws_appends
+    modify -->|extracts| ws_src
+    ws_appends --> gensdk
+    ws_src --> gensdk
+    gensdk -->|"one-time setup"| edit
+    edit --> build
+    build --> deploy
+    deploy --> debug
+    debug -->|repeat| edit
+    edit -.->|"when done"| finish
+    gensdk -.- rerun_note
+
+    style workspace fill:#f6f5f4,stroke:#c061cb,stroke-width:1px
+    style loop fill:#f6f5f4,stroke:#c0bfbc,stroke-width:1px
+
+    classDef orange fill:#ffbe6f,stroke:#ffa348,stroke-width:1px,color:#000000;
+    classDef green fill:#8ff0a4,stroke:#57e389,stroke-width:1px,color:#000000;
+    classDef purple fill:#dc8add,stroke:#c061cb,stroke-width:1px,color:#000000;
+    classDef note fill:#f6f5f4,stroke:#c0bfbc,stroke-width:1px,color:#5e5c64;
+    classDef default fill:#99c1f1,stroke:#62a0ea,stroke-width:1px,color:#000000;
+    class modify,gensdk,build,deploy,debug,finish orange;
+    class ws_src,edit green;
+    class ws_appends purple;
+    class rerun_note note;
diff --git a/documentation/dev-manual/figures/devtool-ide-sdk-workflow.svg b/documentation/dev-manual/figures/devtool-ide-sdk-workflow.svg
new file mode 100644
index 000000000..a83d9ff7d
--- /dev/null
+++ b/documentation/dev-manual/figures/devtool-ide-sdk-workflow.svg
@@ -0,0 +1 @@ 
+<svg id="my-svg" width="491.6734924316406" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="flowchart" height="1050.97802734375" viewBox="4 4 491.6734924316406 1050.97802734375" role="graphics-document document" aria-roledescription="flowchart-v2" style="background-color: transparent;"><style>#my-svg{font-family:"Nimbus Sans",Helvetica,Arial,sans-serif;font-size:13.33px;fill:#000000;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#my-svg .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#my-svg .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#my-svg .error-icon{fill:hsl(32.7272727273, 75.8620689655%, 82.2549019608%);}#my-svg .error-text{fill:rgb(10.9224137931, 42.1293103448, 79.5775862068);stroke:rgb(10.9224137931, 42.1293103448, 79.5775862068);}#my-svg .edge-thickness-normal{stroke-width:1px;}#my-svg .edge-thickness-thick{stroke-width:3.5px;}#my-svg .edge-pattern-solid{stroke-dasharray:0;}#my-svg .edge-thickness-invisible{stroke-width:0;fill:none;}#my-svg .edge-pattern-dashed{stroke-dasharray:3;}#my-svg .edge-pattern-dotted{stroke-dasharray:2;}#my-svg .marker{fill:#000000;stroke:#000000;}#my-svg .marker.cross{stroke:#000000;}#my-svg svg{font-family:"Nimbus Sans",Helvetica,Arial,sans-serif;font-size:13.33px;}#my-svg p{margin:0;}#my-svg .label{font-family:"Nimbus Sans",Helvetica,Arial,sans-serif;color:#000000;}#my-svg .cluster-label text{fill:#000000;}#my-svg .cluster-label span{color:#000000;}#my-svg .cluster-label span p{background-color:transparent;}#my-svg .label text,#my-svg span{fill:#000000;color:#000000;}#my-svg .node rect,#my-svg .node circle,#my-svg .node ellipse,#my-svg .node polygon,#my-svg .node path{fill:#99c1f1;stroke:#62a0ea;stroke-width:1px;}#my-svg .rough-node .label text,#my-svg .node .label text,#my-svg .image-shape .label,#my-svg .icon-shape .label{text-anchor:middle;}#my-svg .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#my-svg .rough-node .label,#my-svg .node .label,#my-svg .image-shape .label,#my-svg .icon-shape .label{text-align:center;}#my-svg .node.clickable{cursor:pointer;}#my-svg .root .anchor path{fill:#000000!important;stroke-width:0;stroke:#000000;}#my-svg .arrowheadPath{fill:#0b0b0b;}#my-svg .edgePaths .path{stroke:#000000;stroke-width:1px;}#my-svg .flowchart-link{stroke:#000000;fill:none;}#my-svg .edgeLabel{background-color:#ffffff;text-align:center;}#my-svg .edgeLabel p{background-color:#ffffff;}#my-svg .edgeLabel rect{opacity:0.5;background-color:#ffffff;fill:#ffffff;}#my-svg .labelBkg{background-color:rgba(255, 255, 255, 0.5);}#my-svg .cluster rect{fill:#f6f5f4;stroke:#c0bfbc;stroke-width:1px;}#my-svg .cluster text{fill:#000000;}#my-svg .cluster span{color:#000000;}#my-svg .node .collapsed-indicator{fill:#c0bfbc;stroke:none;opacity:0.6;}#my-svg .node .collapsed-separator{stroke:#c0bfbc;stroke-width:0.75px;}#my-svg div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"Nimbus Sans",Helvetica,Arial,sans-serif;font-size:12px;background:hsl(32.7272727273, 75.8620689655%, 82.2549019608%);border:1px solid hsl(32.7272727273, 35.8620689655%, 72.2549019608%);border-radius:2px;pointer-events:none;z-index:100;}#my-svg .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#000000;}#my-svg rect.text{fill:none;stroke-width:0;}#my-svg .icon-shape,#my-svg .image-shape{background-color:#ffffff;text-align:center;}#my-svg .icon-shape p,#my-svg .image-shape p{background-color:#ffffff;padding:2px;}#my-svg .icon-shape .label rect,#my-svg .image-shape .label rect{opacity:0.5;background-color:#ffffff;fill:#ffffff;}#my-svg .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#my-svg .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#my-svg .node .neo-node{stroke:#62a0ea;}#my-svg [data-look="neo"].node rect,#my-svg [data-look="neo"].cluster rect,#my-svg [data-look="neo"].node polygon{stroke:url(#my-svg-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#my-svg [data-look="neo"].swimlane.cluster rect{filter:none;}#my-svg [data-look="neo"].node path{stroke:url(#my-svg-gradient);stroke-width:1px;}#my-svg [data-look="neo"].node .outer-path{filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#my-svg [data-look="neo"].node .neo-line path{stroke:#62a0ea;filter:none;}#my-svg [data-look="neo"].node circle{stroke:url(#my-svg-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#my-svg [data-look="neo"].node circle .state-start{fill:#000000;}#my-svg [data-look="neo"].icon-shape .icon{fill:url(#my-svg-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#my-svg [data-look="neo"].icon-shape .icon-neo path{stroke:url(#my-svg-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#my-svg .cluster-label tspan{font-weight:bold;}#my-svg rect{rx:7.5px;ry:7.5px;}#my-svg :root{--mermaid-font-family:"Nimbus Sans",Helvetica,Arial,sans-serif;}#my-svg .orange rect{fill:rgb(255, 190, 111)!important;stroke:rgb(255, 163, 72)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .orange polygon{fill:rgb(255, 190, 111)!important;stroke:rgb(255, 163, 72)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .orange ellipse{fill:rgb(255, 190, 111)!important;stroke:rgb(255, 163, 72)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .orange circle{fill:rgb(255, 190, 111)!important;stroke:rgb(255, 163, 72)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .orange path{fill:rgb(255, 190, 111)!important;stroke:rgb(255, 163, 72)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .orange tspan{fill:rgb(0, 0, 0)!important;}#my-svg .green rect{fill:rgb(143, 240, 164)!important;stroke:rgb(87, 227, 137)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .green polygon{fill:rgb(143, 240, 164)!important;stroke:rgb(87, 227, 137)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .green ellipse{fill:rgb(143, 240, 164)!important;stroke:rgb(87, 227, 137)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .green circle{fill:rgb(143, 240, 164)!important;stroke:rgb(87, 227, 137)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .green path{fill:rgb(143, 240, 164)!important;stroke:rgb(87, 227, 137)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .green tspan{fill:rgb(0, 0, 0)!important;}#my-svg .purple rect{fill:rgb(220, 138, 221)!important;stroke:rgb(192, 97, 203)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .purple polygon{fill:rgb(220, 138, 221)!important;stroke:rgb(192, 97, 203)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .purple ellipse{fill:rgb(220, 138, 221)!important;stroke:rgb(192, 97, 203)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .purple circle{fill:rgb(220, 138, 221)!important;stroke:rgb(192, 97, 203)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .purple path{fill:rgb(220, 138, 221)!important;stroke:rgb(192, 97, 203)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .purple tspan{fill:rgb(0, 0, 0)!important;}#my-svg .note rect{fill:rgb(246, 245, 244)!important;stroke:rgb(192, 191, 188)!important;stroke-width:1px!important;color:rgb(94, 92, 100)!important;}#my-svg .note polygon{fill:rgb(246, 245, 244)!important;stroke:rgb(192, 191, 188)!important;stroke-width:1px!important;color:rgb(94, 92, 100)!important;}#my-svg .note ellipse{fill:rgb(246, 245, 244)!important;stroke:rgb(192, 191, 188)!important;stroke-width:1px!important;color:rgb(94, 92, 100)!important;}#my-svg .note circle{fill:rgb(246, 245, 244)!important;stroke:rgb(192, 191, 188)!important;stroke-width:1px!important;color:rgb(94, 92, 100)!important;}#my-svg .note path{fill:rgb(246, 245, 244)!important;stroke:rgb(192, 191, 188)!important;stroke-width:1px!important;color:rgb(94, 92, 100)!important;}#my-svg .note tspan{fill:rgb(94, 92, 100)!important;}#my-svg .default rect{fill:rgb(153, 193, 241)!important;stroke:rgb(98, 160, 234)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .default polygon{fill:rgb(153, 193, 241)!important;stroke:rgb(98, 160, 234)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .default ellipse{fill:rgb(153, 193, 241)!important;stroke:rgb(98, 160, 234)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .default circle{fill:rgb(153, 193, 241)!important;stroke:rgb(98, 160, 234)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .default path{fill:rgb(153, 193, 241)!important;stroke:rgb(98, 160, 234)!important;stroke-width:1px!important;color:rgb(0, 0, 0)!important;}#my-svg .default tspan{fill:rgb(0, 0, 0)!important;}</style><g><marker id="my-svg_flowchart-v2-pointEnd" class="marker flowchart-v2" viewBox="0 0 10 10" refX="5" refY="5" markerUnits="userSpaceOnUse" markerWidth="8" markerHeight="8" orient="auto"><path d="M 0 0 L 10 5 L 0 10 z" class="arrowMarkerPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-pointStart" class="marker flowchart-v2" viewBox="0 0 10 10" refX="4.5" refY="5" markerUnits="userSpaceOnUse" markerWidth="8" markerHeight="8" orient="auto"><path d="M 0 5 L 10 10 L 10 0 z" class="arrowMarkerPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-pointEnd-margin" class="marker flowchart-v2" viewBox="0 0 11.5 14" refX="11.5" refY="7" markerUnits="userSpaceOnUse" markerWidth="10.5" markerHeight="14" orient="auto"><path d="M 0 0 L 11.5 7 L 0 14 z" class="arrowMarkerPath" style="stroke-width: 0; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-pointStart-margin" class="marker flowchart-v2" viewBox="0 0 11.5 14" refX="1" refY="7" markerUnits="userSpaceOnUse" markerWidth="11.5" markerHeight="14" orient="auto"><polygon points="0,7 11.5,14 11.5,0" class="arrowMarkerPath" style="stroke-width: 0; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-circleEnd" class="marker flowchart-v2" viewBox="0 0 10 10" refX="11" refY="5" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><circle cx="5" cy="5" r="5" class="arrowMarkerPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-circleStart" class="marker flowchart-v2" viewBox="0 0 10 10" refX="-1" refY="5" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><circle cx="5" cy="5" r="5" class="arrowMarkerPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-circleEnd-margin" class="marker flowchart-v2" viewBox="0 0 10 10" refY="5" refX="12.25" markerUnits="userSpaceOnUse" markerWidth="14" markerHeight="14" orient="auto"><circle cx="5" cy="5" r="5" class="arrowMarkerPath" style="stroke-width: 0; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-circleStart-margin" class="marker flowchart-v2" viewBox="0 0 10 10" refX="-2" refY="5" markerUnits="userSpaceOnUse" markerWidth="14" markerHeight="14" orient="auto"><circle cx="5" cy="5" r="5" class="arrowMarkerPath" style="stroke-width: 0; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-crossEnd" class="marker cross flowchart-v2" viewBox="0 0 11 11" refX="12" refY="5.2" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><path d="M 1,1 l 9,9 M 10,1 l -9,9" class="arrowMarkerPath" style="stroke-width: 2; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-crossStart" class="marker cross flowchart-v2" viewBox="0 0 11 11" refX="-1" refY="5.2" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><path d="M 1,1 l 9,9 M 10,1 l -9,9" class="arrowMarkerPath" style="stroke-width: 2; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-crossEnd-margin" class="marker cross flowchart-v2" viewBox="0 0 15 15" refX="17.7" refY="7.5" markerUnits="userSpaceOnUse" markerWidth="12" markerHeight="12" orient="auto"><path d="M 1,1 L 14,14 M 1,14 L 14,1" class="arrowMarkerPath" style="stroke-width: 2.5;"/></marker><marker id="my-svg_flowchart-v2-crossStart-margin" class="marker cross flowchart-v2" viewBox="0 0 15 15" refX="-3.5" refY="7.5" markerUnits="userSpaceOnUse" markerWidth="12" markerHeight="12" orient="auto"><path d="M 1,1 L 14,14 M 1,14 L 14,1" class="arrowMarkerPath" style="stroke-width: 2.5; stroke-dasharray: 1, 0;"/></marker><g class="root"><g class="clusters"><g class="cluster" id="my-svg-loop" data-look="classic"><rect style="fill:#f6f5f4 !important;stroke:#c0bfbc !important;stroke-width:1px !important" x="12" y="501.32600021362305" width="344.11895751953125" height="388.9889945983887"/><g class="cluster-label" transform="translate(115.80947875976562, 501.32600021362305)"><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Edit/build/debug</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> loop</tspan></tspan></text></g></g></g><g class="cluster" id="my-svg-workspace" data-look="classic"><rect style="fill:#f6f5f4 !important;stroke:#c061cb !important;stroke-width:1px !important" x="63.98600311279296" y="154" width="423.6875" height="103.66300201416016"/><g class="cluster-label" transform="translate(216.11881561279296, 154)"><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">devtool</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> workspace</tspan></tspan></text></g></g></g></g><g class="edges edgePaths"><path d="M274.9992515563965,46L274.9992515563965,58.928932188134524Q274.9992515563965,66 267.928183744531,66L213.64063186826195,66Q206.56956405639647,66 206.56956405639647,73.07106781186548L206.56956405639647,95L206.56956405639647,116.92893218813452Q206.56956405639647,124 199.498496244531,124L184.90082092465843,124Q177.82975311279296,124 177.82975311279296,131.07106781186548L177.82975311279296,144L177.82975311279296,198.33150100708008" id="my-svg-L_modify_ws_appends_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_modify_ws_appends_0" data-points="W3sieCI6Mjc0Ljk5OTI1MTU1NjM5NjUsInkiOjQ2fSx7IngiOjI3NC45OTkyNTE1NTYzOTY1LCJ5Ijo2Nn0seyJ4IjoyMDYuNTY5NTY0MDU2Mzk2NDcsInkiOjY2fSx7IngiOjIwNi41Njk1NjQwNTYzOTY0NywieSI6OTV9LHsieCI6MjA2LjU2OTU2NDA1NjM5NjQ3LCJ5IjoxMjR9LHsieCI6MTc3LjgyOTc1MzExMjc5Mjk2LCJ5IjoxMjR9LHsieCI6MTc3LjgyOTc1MzExMjc5Mjk2LCJ5IjoxNDR9LHsieCI6MTc3LjgyOTc1MzExMjc5Mjk2LCJ5IjoyMDIuMzMxNTAxMDA3MDgwMDh9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M350.9836265563965,46L350.9836265563965,116.92893218813452Q350.9836265563965,124 358.05469436826195,124L383.6024353009275,124Q390.67350311279296,124 390.67350311279296,131.07106781186548L390.67350311279296,144L390.67350311279296,191" id="my-svg-L_modify_ws_src_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_modify_ws_src_0" data-points="W3sieCI6MzUwLjk4MzYyNjU1NjM5NjUsInkiOjQ2fSx7IngiOjM1MC45ODM2MjY1NTYzOTY1LCJ5IjoxMjR9LHsieCI6MzkwLjY3MzUwMzExMjc5Mjk2LCJ5IjoxMjR9LHsieCI6MzkwLjY3MzUwMzExMjc5Mjk2LCJ5IjoxNDR9LHsieCI6MzkwLjY3MzUwMzExMjc5Mjk2LCJ5IjoxOTV9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M177.82975311279296,226.33150100708008L177.82975311279296,284L177.82975311279296,296.9289321881345Q177.82975311279296,304 184.90082092465843,304L248.4065363548012,304Q255.47760416666668,304 255.47760416666668,311.0710678118655L255.47760416666668,320" id="my-svg-L_ws_appends_gensdk_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_ws_appends_gensdk_0" data-points="W3sieCI6MTc3LjgyOTc1MzExMjc5Mjk2LCJ5IjoyMjYuMzMxNTAxMDA3MDgwMDh9LHsieCI6MTc3LjgyOTc1MzExMjc5Mjk2LCJ5IjoyODR9LHsieCI6MTc3LjgyOTc1MzExMjc5Mjk2LCJ5IjozMDR9LHsieCI6MjU1LjQ3NzYwNDE2NjY2NjY4LCJ5IjozMDR9LHsieCI6MjU1LjQ3NzYwNDE2NjY2NjY4LCJ5IjozMjR9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M390.67350311279296,233.66298357820415L390.67350311279296,233.66300201416016L390.67350311279296,284L390.67350311279296,296.9289321881345Q390.67350311279296,304 383.6024353009275,304L325.5903386451988,304Q318.51927083333334,304 318.51927083333334,311.0710678118655L318.51927083333334,320" id="my-svg-L_ws_src_gensdk_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_ws_src_gensdk_0" data-points="W3sieCI6MzkwLjY3MzUwMzExMjc5Mjk2LCJ5IjoyMzMuNjYyOTgzNTc4MjA0MTV9LHsieCI6MzkwLjY3MzUwMzExMjc5Mjk2LCJ5IjoyMzMuNjYzMDAyMDE0MTYwMTZ9LHsieCI6MzkwLjY3MzUwMzExMjc5Mjk2LCJ5IjoyODR9LHsieCI6MzkwLjY3MzUwMzExMjc5Mjk2LCJ5IjozMDR9LHsieCI6MzE4LjUxOTI3MDgzMzMzMzM0LCJ5IjozMDR9LHsieCI6MzE4LjUxOTI3MDgzMzMzMzM0LCJ5IjozMjR9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M255.47760416666668,372.6629981994629L255.47760416666668,385.5919303875974Q255.47760416666668,392.6629981994629 248.4065363548012,392.6629981994629L242.38044281186546,392.6629981994629Q235.309375,392.6629981994629 235.309375,399.73406601132837L235.309375,491.32600021362305L235.309375,538.326000213623" id="my-svg-L_gensdk_edit_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_gensdk_edit_0" data-points="W3sieCI6MjU1LjQ3NzYwNDE2NjY2NjY4LCJ5IjozNzIuNjYyOTk4MTk5NDYyOX0seyJ4IjoyNTUuNDc3NjA0MTY2NjY2NjgsInkiOjM5Mi42NjI5OTgxOTk0NjI5fSx7IngiOjIzNS4zMDkzNzUsInkiOjM5Mi42NjI5OTgxOTk0NjI5fSx7IngiOjIzNS4zMDkzNzUsInkiOjQ5MS4zMjYwMDAyMTM2MjMwNX0seyJ4IjoyMzUuMzA5Mzc1LCJ5Ijo1NDIuMzI2MDAwMjEzNjIzfV0=" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M235.309375,576.326000213623L235.309375,599.2549324017575Q235.309375,606.326000213623 242.38044281186546,606.326000213623L245.04788970766577,606.326000213623Q252.11895751953125,606.326000213623 252.11895751953125,613.3970680254886L252.11895751953125,632.326000213623" id="my-svg-L_edit_build_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_edit_build_0" data-points="W3sieCI6MjM1LjMwOTM3NSwieSI6NTc2LjMyNjAwMDIxMzYyM30seyJ4IjoyMzUuMzA5Mzc1LCJ5Ijo2MDYuMzI2MDAwMjEzNjIzfSx7IngiOjI1Mi4xMTg5NTc1MTk1MzEyNSwieSI6NjA2LjMyNjAwMDIxMzYyM30seyJ4IjoyNTIuMTE4OTU3NTE5NTMxMjUsInkiOjYzNi4zMjYwMDAyMTM2MjN9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M252.11895751953125,699.6519966125488L252.11895751953125,719.6519966125488" id="my-svg-L_build_deploy_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_build_deploy_0" data-points="W3sieCI6MjUyLjExODk1NzUxOTUzMTI1LCJ5Ijo2OTkuNjUxOTk2NjEyNTQ4OH0seyJ4IjoyNTIuMTE4OTU3NTE5NTMxMjUsInkiOjcyMy42NTE5OTY2MTI1NDg4fV0=" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M252.11895751953125,757.6519966125488L252.11895751953125,780.5809288006833Q252.11895751953125,787.6519966125488 245.04788970766577,787.6519966125488L227.15856781186545,787.6519966125488Q220.08749999999998,787.6519966125488 220.08749999999998,794.7230644244144L220.08749999999998,813.6519966125488" id="my-svg-L_deploy_debug_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_deploy_debug_0" data-points="W3sieCI6MjUyLjExODk1NzUxOTUzMTI1LCJ5Ijo3NTcuNjUxOTk2NjEyNTQ4OH0seyJ4IjoyNTIuMTE4OTU3NTE5NTMxMjUsInkiOjc4Ny42NTE5OTY2MTI1NDg4fSx7IngiOjIyMC4wODc0OTk5OTk5OTk5OCwieSI6Nzg3LjY1MTk5NjYxMjU0ODh9LHsieCI6MjIwLjA4NzQ5OTk5OTk5OTk4LCJ5Ijo4MTcuNjUxOTk2NjEyNTQ4OH1d" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M133.44375,817.6519966125488L133.44375,794.7230644244144Q133.44375,787.6519966125488 126.37268218813452,787.6519966125488L108.48336029233423,787.6519966125488Q101.41229248046875,787.6519966125488 101.41229248046875,780.5809288006833L101.41229248046875,613.3970680254886Q101.41229248046875,606.326000213623 108.48336029233423,606.326000213623L193.6383071881345,606.326000213623Q200.70937499999997,606.326000213623 200.70937499999997,599.2549324017575L200.70937499999997,580.326000213623" id="my-svg-L_debug_edit_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_debug_edit_0" data-points="W3sieCI6MTMzLjQ0Mzc1LCJ5Ijo4MTcuNjUxOTk2NjEyNTQ4OH0seyJ4IjoxMzMuNDQzNzUsInkiOjc4Ny42NTE5OTY2MTI1NDg4fSx7IngiOjEwMS40MTIyOTI0ODA0Njg3NSwieSI6Nzg3LjY1MTk5NjYxMjU0ODh9LHsieCI6MTAxLjQxMjI5MjQ4MDQ2ODc1LCJ5Ijo2MDYuMzI2MDAwMjEzNjIzfSx7IngiOjIwMC43MDkzNzQ5OTk5OTk5NywieSI6NjA2LjMyNjAwMDIxMzYyM30seyJ4IjoyMDAuNzA5Mzc0OTk5OTk5OTcsInkiOjU3Ni4zMjYwMDAyMTM2MjN9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M269.90937499999995,576.326000213623L269.90937499999995,599.2549324017575Q269.90937499999995,606.326000213623 276.98044281186543,606.326000213623L345.7697647076658,606.326000213623Q352.84083251953126,606.326000213623 352.84083251953126,613.3970680254886L352.84083251953126,900.3149948120117L352.84083251953126,994.3149948120117" id="my-svg-L_edit_finish_0" class="edge-thickness-normal edge-pattern-dotted edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_edit_finish_0" data-points="W3sieCI6MjY5LjkwOTM3NDk5OTk5OTk1LCJ5Ijo1NzYuMzI2MDAwMjEzNjIzfSx7IngiOjI2OS45MDkzNzQ5OTk5OTk5NSwieSI6NjA2LjMyNjAwMDIxMzYyM30seyJ4IjozNTIuODQwODMyNTE5NTMxMjYsInkiOjYwNi4zMjYwMDAyMTM2MjN9LHsieCI6MzUyLjg0MDgzMjUxOTUzMTI2LCJ5Ijo5MDAuMzE0OTk0ODEyMDExN30seyJ4IjozNTIuODQwODMyNTE5NTMxMjYsInkiOjk5OC4zMTQ5OTQ4MTIwMTE3fV0=" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M318.51927083333334,372.6629981994629L318.51927083333334,385.5919303875974Q318.51927083333334,392.6629981994629 325.5903386451988,392.6629981994629L383.6024353009275,392.6629981994629Q390.67350311279296,392.6629981994629 390.67350311279296,399.73406601132837L390.67350311279296,412.6629981994629" id="my-svg-L_gensdk_rerun_note_0" class="edge-thickness-normal edge-pattern-dotted edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_gensdk_rerun_note_0" data-points="W3sieCI6MzE4LjUxOTI3MDgzMzMzMzM0LCJ5IjozNzIuNjYyOTk4MTk5NDYyOX0seyJ4IjozMTguNTE5MjcwODMzMzMzMzQsInkiOjM5Mi42NjI5OTgxOTk0NjI5fSx7IngiOjM5MC42NzM1MDMxMTI3OTI5NiwieSI6MzkyLjY2Mjk5ODE5OTQ2Mjl9LHsieCI6MzkwLjY3MzUwMzExMjc5Mjk2LCJ5Ijo0MTIuNjYyOTk4MTk5NDYyOX1d" data-look="classic"/></g><g class="edgeLabels"><g class="edgeLabel" transform="translate(350.9836265563965, 95)"><g class="label" data-id="L_modify_ws_src_0" transform="translate(-0.166015625, -10.329999923706055)"><g><rect class="background" style="" x="-25.1328125" y="1.3299999237060547" width="50.59765625" height="18"/><text xml:space="preserve" y="-10.1" text-anchor="middle" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">extracts</tspan></tspan></text></g></g></g><g class="edgeLabel" transform="translate(234.825, 431.99449920654297)"><g class="label" data-id="L_gensdk_edit_0" transform="translate(0, -10.329999923706055)"><g><rect class="background" style="" x="-46.015625" y="1.3299999237060547" width="92.03125" height="18"/><text xml:space="preserve" y="-10.1" text-anchor="middle" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">one-time</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> setup</tspan></tspan></text></g></g></g><g class="edgeLabel" transform="translate(101.265625, 667.9889984130859)"><g class="label" data-id="L_debug_edit_0" transform="translate(-0.14239501953125, -10.329999923706055)"><g><rect class="background" style="" x="-20.7109375" y="1.3299999237060547" width="41.7066650390625" height="18"/><text xml:space="preserve" y="-10.1" text-anchor="middle" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">repeat</tspan></tspan></text></g></g></g><g class="edgeLabel" transform="translate(352.45020751953126, 949.3149948120117)"><g class="label" data-id="L_edit_finish_0" transform="translate(0, -10.329999923706055)"><g><rect class="background" style="" x="-34.609375" y="1.3299999237060547" width="69.21875" height="18"/><text xml:space="preserve" y="-10.1" text-anchor="middle" style=""><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">when</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> done</tspan></tspan></text></g></g></g></g><g class="nodes"><g class="node default orange" id="my-svg-flowchart-modify-0" data-look="classic" transform="translate(312.9914390563965, 29)"><rect class="basic label-container" style="fill:#ffbe6f !important;stroke:#ffa348 !important;stroke-width:1px !important" x="-123.9765625" y="-17" width="247.953125" height="34"/><g class="label" style="color:#000000 !important" transform="translate(0, -7)"><rect/><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style="fill:#000000 !important"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">devtool</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> modify</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> recipe</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> --debug-build</tspan></tspan></text></g></g></g><g class="node default purple" id="my-svg-flowchart-ws_appends-1" data-look="classic" transform="translate(177.82975311279296, 214.33150100708008)"><polygon points="0,0 163.6875,0 163.6875,-24 0,-24 0,0 -8,0 171.6875,0 171.6875,-24 -8,-24 -8,0" class="label-container" transform="translate(-81.84375,12)" style="fill:#dc8add !important;stroke:#c061cb !important;stroke-width:1px !important"/><g class="label" style="color:#000000 !important" transform="translate(0, -7)"><rect/><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style="fill:#000000 !important"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">appends/recipe.bbappend</tspan></tspan></text></g></g></g><g class="node default green" id="my-svg-flowchart-ws_src-2" data-look="classic" transform="translate(390.67350311279296, 214.33150100708008)"><polygon points="0,0 130,0 130,-38.66300010681152 0,-38.66300010681152 0,0 -8,0 138,0 138,-38.66300010681152 -8,-38.66300010681152 -8,0" class="label-container" transform="translate(-65,19.33150005340576)" style="fill:#8ff0a4 !important;stroke:#57e389 !important;stroke-width:1px !important"/><g class="label" style="color:#000000 !important" transform="translate(0, -14.331500053405762)"><rect/><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style="fill:#000000 !important"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">sources/recipe</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">(extracted</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> here)</tspan></tspan></text></g></g></g><g class="node default orange" id="my-svg-flowchart-gensdk-3" data-look="classic" transform="translate(286.9984375, 348.33149909973145)"><rect class="basic label-container" style="fill:#ffbe6f !important;stroke:#ffa348 !important;stroke-width:1px !important" x="-104.5625" y="-24.33150005340576" width="209.125" height="48.66300010681152"/><g class="label" style="color:#000000 !important" transform="translate(0, -14.331500053405762)"><rect/><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style="fill:#000000 !important"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">devtool</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> ide-sdk</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> recipe</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> image</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">(generate</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> SDK</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> +</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> IDE</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> config)</tspan></tspan></text></g></g></g><g class="node default green" id="my-svg-flowchart-edit-4" data-look="classic" transform="translate(235.309375, 559.326000213623)"><rect class="basic label-container" style="fill:#8ff0a4 !important;stroke:#57e389 !important;stroke-width:1px !important" x="-80" y="-17" width="160" height="34"/><g class="label" style="color:#000000 !important" transform="translate(0, -7)"><rect/><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style="fill:#000000 !important"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Edit</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> source</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> code</tspan></tspan></text></g></g></g><g class="node default orange" id="my-svg-flowchart-build-5" data-look="classic" transform="translate(252.11895751953125, 667.9889984130859)"><rect class="basic label-container" style="fill:#ffbe6f !important;stroke:#ffa348 !important;stroke-width:1px !important" x="-80" y="-31.66299819946289" width="160" height="63.32599639892578"/><g class="label" style="color:#000000 !important" transform="translate(0, -21.66299819946289)"><rect/><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style="fill:#000000 !important"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Build</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">(build</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> tool</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> called</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="2.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">directly</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> by</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> the</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> IDE)</tspan></tspan></text></g></g></g><g class="node default orange" id="my-svg-flowchart-deploy-6" data-look="classic" transform="translate(252.11895751953125, 740.6519966125488)"><rect class="basic label-container" style="fill:#ffbe6f !important;stroke:#ffa348 !important;stroke-width:1px !important" x="-80" y="-17" width="160" height="34"/><g class="label" style="color:#000000 !important" transform="translate(0, -7)"><rect/><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style="fill:#000000 !important"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Deploy</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> to</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> target</tspan></tspan></text></g></g></g><g class="node default orange" id="my-svg-flowchart-debug-7" data-look="classic" transform="translate(176.765625, 841.9834957122803)"><rect class="basic label-container" style="fill:#ffbe6f !important;stroke:#ffa348 !important;stroke-width:1px !important" x="-140.765625" y="-24.33150005340576" width="281.53125" height="48.66300010681152"/><g class="label" style="color:#000000 !important" transform="translate(0, -14.331500053405762)"><rect/><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style="fill:#000000 !important"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Debug</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> remotely</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">(e.g.</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> GDB/LLDB</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> +</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> gdbserver/lldb-server)</tspan></tspan></text></g></g></g><g class="node default orange" id="my-svg-flowchart-finish-8" data-look="classic" transform="translate(352.84083251953126, 1022.6464939117432)"><rect class="basic label-container" style="fill:#ffbe6f !important;stroke:#ffa348 !important;stroke-width:1px !important" x="-100.4296875" y="-24.33150005340576" width="200.859375" height="48.66300010681152"/><g class="label" style="color:#000000 !important" transform="translate(0, -14.331500053405762)"><rect/><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style="fill:#000000 !important"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">devtool</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> finish</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> recipe</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> layer</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">(turn</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> changes</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> into</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> patches)</tspan></tspan></text></g></g></g><g class="node default note" id="my-svg-flowchart-rerun_note-9" data-look="classic" transform="translate(390.67350311279296, 431.99449920654297)"><g class="basic label-container outer-path" transform="translate(4.83287501335144,0)"><path d="M-74.66575002670288 -19.33150005340576 C-71.40538971050414 -12.810779421008267, -68.14502939430538 -6.29005878861077, -65 0 C-67.94551634496064 5.891032689921286, -70.89103268992129 11.782065379842573, -74.66575002670288 19.33150005340576 C-44.44243276766865 19.33150005340576, -14.219115508634424 19.33150005340576, 65 19.33150005340576 C65 5.559444130880824, 65 -8.212611791644115, 65 -19.33150005340576 C15.99965419423188 -19.33150005340576, -33.00069161153624 -19.33150005340576, -74.66575002670288 -19.33150005340576" stroke="none" stroke-width="0" fill="#f6f5f4" style="fill:#f6f5f4 !important;stroke:#c0bfbc !important;stroke-width:1px !important"/><path d="M-74.66575002670288 -19.33150005340576 C-71.5251224278427 -13.050244855685419, -68.38449482898254 -6.768989657965076, -65 0 M-74.66575002670288 -19.33150005340576 C-71.62351113337313 -13.247022266746264, -68.58127224004338 -7.1625444800867655, -65 0 M-65 0 C-67.82578458116387 5.651569162327756, -70.65156916232776 11.303138324655512, -74.66575002670288 19.33150005340576 M-65 0 C-68.31876689677354 6.637533793547082, -71.63753379354708 13.275067587094163, -74.66575002670288 19.33150005340576 M-74.66575002670288 19.33150005340576 C-39.987920406742916 19.33150005340576, -5.3100907867829505 19.33150005340576, 65 19.33150005340576 M-74.66575002670288 19.33150005340576 C-42.115118925576866 19.33150005340576, -9.56448782445085 19.33150005340576, 65 19.33150005340576 M65 19.33150005340576 C65 5.214944971224332, 65 -8.901610110957098, 65 -19.33150005340576 M65 19.33150005340576 C65 10.24527523198579, 65 1.1590504105658184, 65 -19.33150005340576 M65 -19.33150005340576 C21.288527445718366 -19.33150005340576, -22.42294510856327 -19.33150005340576, -74.66575002670288 -19.33150005340576 M65 -19.33150005340576 C21.919020972014586 -19.33150005340576, -21.16195805597083 -19.33150005340576, -74.66575002670288 -19.33150005340576" stroke="#c0bfbc" stroke-width="1" fill="none" stroke-dasharray="0 0" style="fill:#f6f5f4 !important;stroke:#c0bfbc !important;stroke-width:1px !important"/></g><g class="label" style="color:#5e5c64 !important" transform="translate(4.83287501335144, -17.661499977111816)"><rect/><g><rect class="background" style="stroke: none"/><text xml:space="preserve" y="-10.1" style="fill:#5e5c64 !important"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">rerun</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> only</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> if</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> recipe</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">deps/config</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> change</tspan></tspan></text></g></g></g></g></g></g><defs><filter id="my-svg-drop-shadow" height="130%" width="130%"><feDropShadow dx="4" dy="4" stdDeviation="0" flood-opacity="0.06" flood-color="#000000"/></filter></defs><defs><filter id="my-svg-drop-shadow-small" height="150%" width="150%"><feDropShadow dx="2" dy="2" stdDeviation="0" flood-opacity="0.06" flood-color="#000000"/></filter></defs><linearGradient id="my-svg-gradient" gradientUnits="objectBoundingBox" x1="0%" y1="0%" x2="100%" y2="0%"><stop offset="0%" stop-color="#62a0ea" stop-opacity="1"/><stop offset="100%" stop-color="hsl(92.7272727273, 35.8620689655%, 67.2549019608%)" stop-opacity="1"/></linearGradient></svg>
\ No newline at end of file
diff --git a/documentation/sphinx-static/theme_overrides.css b/documentation/sphinx-static/theme_overrides.css
index 3912872e1..3823db820 100644
--- a/documentation/sphinx-static/theme_overrides.css
+++ b/documentation/sphinx-static/theme_overrides.css
@@ -96,6 +96,11 @@  em {
   color: #444;
 }
 
+/* Scale with the page, but never beyond the size the text is meant for */
+img.max-natural-size {
+    max-width: max-content;
+}
+
 [alt='Permalink'] { color: #eee; }
 [alt='Permalink']:hover { color: black; }